我正在尝试使用objective-c实现post wall,但是当我通过action session请求'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再次显示登录表单。
谢谢。答案 0 :(得分:0)
Facebook iOS SDK 3.1现已禁用openActiveSessionWithPublishPermissions
。您将需要首先建立只读会话,然后另外请求写入权限。您可以在iOS SDK Upgrade Guide了解有关升级过程的更多详细信息。