gpt4 book ai didi

ios - Facebook iOS SDK - 发布自定义故事

转载 作者:行者123 更新时间:2023-11-29 12:30:44 26 4
gpt4 key购买 nike

我正在尝试做一些似乎比必要的困难一个数量级的事情。

我有一个针对 Parse 后端编写的 iOS 应用程序。我们应用程序的用户可以创建要存储的项目,他们有时可以为这些项目生成警报。

我想向 Facebook 用户发布一个简单的提醒。

我在 Facebook 网站上阅读了很多关于将 Facebook 集成到 iOS 中的内容,但他们的文档令人困惑,而且我在 StackOverflow 上看到不止一个人提到他们的 iOS 代码至少有时存在缺陷。

基本上,自定义故事将包括以下项目:

  1. 故事标题
  2. 故事描述(这里通常没有太多文字)
  3. 一张或多张照片(我愿意接受 1 张,但我希望能够发布多张)
  4. 如果可能,用户提供的 GPS 位置。

我先承认,我是一名出于工作目的学习 Facebook 的开发人员,我远不是 Facebook 的专家。

当我使用 Facebook 应用程序时,我可以添加状态更新,其中包括:

  1. 正文
  2. 图片
  3. friend
  4. 我在做什么
  5. 我在哪里(或某个位置)

但是,在 Facebook SDK 中,似乎只有以下两个用于发布状态更新的选项:

startForPostStatusUpdate:completionHandler:
startForPostStatusUpdate:place:tags:completionHandler:

如果我遗漏了什么,请告诉我。

其次,我正在尝试按照 Facebook 的文档和示例代码来执行以下事件序列:

  1. 上传并暂存图像资源
  2. 创建一个对象(在我的应用程序中,我注册了一个“警报”对象)
  3. 创建一个 Action (在我的应用中,我注册了一个“发布” Action )

这是我从 Facebook 网站上拼凑的代码(评论主要来自其他人的代码,不是我自己的代码):

- (void)postToFacebookWithAlert:(PFObject *)alert image:(UIImage *)image {        
// Stage the image
[FBRequestConnection startForUploadStagingResourceWithImage:image completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error != nil) {
// See: https://developers.facebook.com/docs/ios/errors
} else {
// Package image inside a dictionary, inside an array like we'll need it for the object
NSArray *image = @[@{@"url": [result objectForKey:@"uri"], @"user_generated" : @"true" }];
// Create an object
NSString *caption = // user-generate content
NSMutableDictionary<FBOpenGraphObject> *alert;
alert = [FBGraphObject openGraphObjectForPostWithType:@"<myapp>:alert"
title:caption
image:image
url:nil
description:alert[@"subtitle"]];
alert.provisionedForPost = YES;

// Post custom object
[FBRequestConnection startForPostOpenGraphObject:alert completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error != nil) {
// An error occurred
} else {
NSMutableDictionary<FBGraphObject> *post = [FBGraphObject graphObject];
post[@"alert"] = result[@"id"];
[FBRequestConnection startForPostWithGraphPath:@"me/<myapp>:post" graphObject:post completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"startForPostWithGraphPath:graphObject:completionHandler:");
if (error != nil) {
// An error occurred
NSLog(@"Encountered an error posting to Open Graph: %@", error);
} else {
NSLog(@"OG story posted, story id: %@", result[@"id"]);
}
}];
}
}];
}
}];
}

我实际上已经让这段代码工作了一次。我以我自己的个人 Facebook 帐户登录。如果我转到我的事件日志,我可以看到我要发布的项目。如果我转到我的照片,我可以看到我正在尝试上传的照片。如果我从我妻子的应用程序/帐户查看我的个人资料,它不会显示。

有没有人有可以满足我要求的工作代码?

最佳答案

也许您需要将“fb:explicitly_shared”设置为“true”,它应该由 Facebook 审核。

审核通过后,您可以添加如下选项。

[post setObject:@"true" forKey:@"fb:explicitly_shared"];

关于ios - Facebook iOS SDK - 发布自定义故事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27809660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com