1

我的应用在 Feed Dialog 的帮助下发布到 facebook,但不幸的是,我的帖子的公众观众只有我。当我尝试在发布参数中设置隐私密钥以供朋友查看时:

 NSMutableDictionary *params =
    [NSMutableDictionary dictionaryWithObjectsAndKeys:
     @"my app_id", @"app_id",
     @"my app name", @"name",
     @"some text.", @"caption",
     @"some more text.", @"description",
     @"web site link", @"link",
     @"some picture link", @"picture",
     @"ALL_FRIENDS", @"privacy",
     nil]; 

因此,当添加@"ALL_FRIENDS"、@"privacy" 时,我在尝试发布时在对话框窗口中收到错误:Error100(我使用的隐私参数不正确)。所以我的问题是如何更改此参数或如何让用户更改它的提要对话框窗口(我使用的是 3.5 facebook SDK)。提前致谢!

4

2 回答 2

0

我不确定您能否覆盖用户在其隐私设置中设置的 Only Me 设置。通常,要克服对话框错误,您可以尝试:

@"{'value': 'ALL_FRIENDS'}", @"privacy",

当我将隐私级别设置为低于用户指定的上限时,我知道此设置适用于 Graph API 帖子(例如:me/feed)。因此,如果他们的上限是 Only Me,则帖子将显示为 Only Me。如果他们的上限是朋友并且我将隐私设置为 SELF,那么我会收到一个只有我的帖子。

您可以考虑使用新的共享对话框(在 3.5.2 中)。它允许用户选择他们的隐私。Feed Dialog 窗口没有隐私选择器。

有关不同共享选项的比较,请参阅https://developers.facebook.com/docs/howtos/share-dialogs-ios-sdk/

于 2013-06-07T01:10:38.167 回答
0

好的,那么我做了什么来解决这个问题:

1.当我的应用程序启动时,我正在关闭任何活动会话:

FBSession* currentSession = [FBSession activeSession];
if(currentSession) {
    [currentSession close];
}

2.与朋友建立新的联系作为默认受众

 [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                   defaultAudience:FBSessionDefaultAudienceFriends
                                      allowLoginUI:YES
                                 completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
                                     if (!error && status == FBSessionStateOpen) {
                                         [self publishWithWebDialog];
                                     }else{
                                         NSLog(@"error");
                                     }
                                 }];

3.Feed Dialog发布的调用方法:

[self publishWithWebDialog];

有趣的部分在应用程序第二次启动时开始 :) 无需按下所有 OK 按钮,应用程序只需打开 Feed 对话框,顺便说一下,这种方法还解决了从用户帐户设置中删除 Facebook 中的应用程序的问题 - > 应用程序。

于 2013-06-08T17:43:27.893 回答