ios facebook sdk在Only Me中发布照片结果

时间:2013-10-17 08:28:22

标签: ios facebook facebook-graph-api

当我在ios上使用facebook sdk从我的应用程序将照片发布到我的时间线时,它没有显示在那里。相反,它进入自定义相册(我喜欢),但我必须先手动批准照片,然后照片显示在我的时间线上“只有我”,我必须更改这些权限,然后其他人才能看到交。

enter image description here

显然,这对于照片编辑应用来说并不理想。

我正在使用我在这里和他们的示例中找到的代码变体。我可以发布代码,如果它有帮助,但它是从这里工作的代码。即使在我要求的代码中,它几乎就像是一个“只有我”的设置:

defaultAudience:FBSessionDefaultAudienceFriends

我还没有提交我的fb app详细信息页面,但是我将我的fb应用程序移出了沙箱并进入了直播。它正在将照片上传到我的个人资料......

我做错了什么?

更新:

我发现应用程序本身设置为“只有我”。在应用程序中心:https://www.facebook.com/appcenter/my当我找到应用程序并点击设置时......它只设置为我。默认情况下,我需要将其设置为至少朋友或朋友的朋友。在我编译的示例fb应用程序中...其中一些也只显示我 - 像Scrumptious和SessionLoginSample,这可能是我获取登录代码的地方。 HellowFBSample设置为Friends。

默认情况下,为什么将此设置为无用权限的任何想法。我不能指望用户切换权限。

更新2:

我将继续发布该代码..因为我发现了我的错误..也许它会帮助某人。实际上我从这里得到的代码:

FBSession: an attempt was made reauthorize permissions on an unopened session

我已在那里编辑了已检查的答案,但我复制了该代码,它有:

        [[FBSession activeSession] requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_action"] defaultAudience:FBSessionDefaultAudienceFriends
                                          completionHandler:^(FBSession *session,NSError *error){
                                              [self publishStory];
                                          }];

publish_action是错误的。它必须是带有S的publish_actions。否则你会得到我得到的东西。它私下保存照片,但将应用程序设置为“仅限我”,因为您实际上没有权限发布它。

1 个答案:

答案 0 :(得分:0)

我用这个。但在上传之前,您必须向Facebook申请许可。

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                                             self.image, @"picture",
                                                             self.captionTextField.text, @"name", nil];
                              FBRequest *uploadRequest = [FBRequest requestWithGraphPath:@"me/photos"
                                                                              parameters:params
                                                                              HTTPMethod:@"POST"];
                              [uploadRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
                               {

                               }];