使用Feed对话框时更改或显示隐私设置

时间:2013-06-06 21:25:24

标签: ios facebook feed

我的应用程序在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”时,我在尝试发布时在Dialog窗口中收到错误:Error100(我使用的隐私参数不正确)。 所以我的问题是如何更改此参数或如何让用户更改它的Feed对话窗口(我使用的是3.5 facebook SDK)。 提前谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

答案 1 :(得分: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对话框发布的呼叫方法:

[self publishWithWebDialog];

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