openActiveSessionWithPublishPermissions 显示登录表单两次

Posted

技术标签:

【中文标题】openActiveSessionWithPublishPermissions 显示登录表单两次【英文标题】:openActiveSessionWithPublishPermissions show login form twice 【发布时间】:2013-09-11 17:54:22 【问题描述】:

我正在尝试使用objective-c 实现post wall,但是当我通过操作会话请求“publish_actions”的新权限时,再次显示FB SDK 登录表单。

我正在寻找这个教程:https://developers.facebook.com/docs/ios/publish-to-feed-ios-sdk/

在我的申请流程中基本上是这样的:

void (^completionHandler)(FBSession*, NSError*) = ^(FBSession*session, NSError*error)

    if (session.isOpen && !error)
    
        [FBWebDialogs presentFeedDialogModallyWithSession:session
                                               parameters:params
                                                  handler:handler];
    
;

// abrie o dialog
BOOL isFBIntegration = [SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook];

if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound)

    if(isFBIntegration)
    
        [[FBSession activeSession] requestNewPublishPermissions:@[@"publish_actions"]
                                                defaultAudience:FBSessionDefaultAudienceFriends
                                              completionHandler:completionHandler];
    
    else
    
        [FBSession openActiveSessionWithPublishPermissions:@[@"publish_actions"]
                                           defaultAudience:FBSessionDefaultAudienceEveryone
                                              allowLoginUI:YES
                                         completionHandler:^(FBSession *session, FBSessionState status, NSError *error) 
                                             completionHandler(session, error);
                                         ];
    

else

    completionHandler(FBSession.activeSession, nil);

用户已经登录,因为我确实要求他在进入应用程序时登录:

首页

    [FBSession openActiveSessionWithReadPermissions:@[@"basic_info, user_friends, friends_interests"]
                                       allowLoginUI:YES
                                  completionHandler:nil];

当Facebook是原生集成时,可以,但是当没有时,openActiveSessionWithPublishPermissions再次显示登录表单。

谢谢。

【问题讨论】:

【参考方案1】:

Facebook iOS SDK 3.1 现已禁用 openActiveSessionWithPublishPermissions。您需要首先建立一个只读会话,然后另外请求写入权限。您可以在iOS SDK Upgrade Guide阅读有关升级过程的更多详细信息。

【讨论】:

谢谢,我的应用程序的新版本正在使用 API Facebook SDK 的最新版本,现在我没有任何问题.....谢谢。

以上是关于openActiveSessionWithPublishPermissions 显示登录表单两次的主要内容,如果未能解决你的问题,请参考以下文章