gpt4 book ai didi

ios - 带有发布权限回调的 Facebook iOS 3.1 sdk 登录

转载 作者:IT王子 更新时间:2023-10-29 08:19:13 26 4
gpt4 key购买 nike

我在使用 facebook 3.1 ios sdk 中的发布权限登录时遇到问题。

我的应用有一个分享视频的按钮,当用户点击它时我想添加基本的 + 发布权限。据我了解,我必须打两个电话-

  1. openActiveSessionWithReadPermissions,然后
  2. reauthorizeWithPublishPermissions

这是我现在使用的代码:

//Opens a Facebook session and optionally shows the login UX.
- (void)openSessionForReadPermissions
{
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {

//this is called even from the reauthorizeWithPublishPermissions
if (state == FBSessionStateOpen && !error)
{
[self openSessionForPublishPermissions];
}
else if (state == FBSessionStateClosedLoginFailed)
{
[FBSession.activeSession closeAndClearTokenInformation];

[[NSNotificationCenter defaultCenter] postNotificationName:FBLoginErrorNotification object:session];
}
}];
}

-(void)openSessionForPublishPermissions
{
NSArray* permissions = [NSArray arrayWithObject:@"publish_stream"];

[[FBSession activeSession] reauthorizeWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:
^(FBSession *session, NSError *error)
{
if (!error)
{
[[NSNotificationCenter defaultCenter]
postNotificationName:FBLoginSuccessNotification
object:session];
}
else
{
[[NSNotificationCenter defaultCenter]
postNotificationName:FBLoginErrorNotification
object:session];
}
}];
}

我看到 openSessionForReadPermissions 中的 block 被调用了两次(一次是通过 FBSessionStateOpen 调用,一次是通过 openSessionForPublishPermissions 调用中的 FBSessionStateOpenTokenExtended 调用),并且我在第一次尝试登录应用程序时收到 ErrorReauthorizeFailedReasonUserCancelled(如果 O 之前删除了所有应用程序权限) .

实现此登录的正确方法是什么?该应用程序不需要 Facebook 登录,除了这一功能,所以登录过程应该在同一个按钮推送上。

谢谢!

最佳答案

我遇到了同样的问题。我找到的解决方案是将对 [self openSessionForPublishPermissions]; 的调用包装在 dispatch_async block 中。

例子:

dispatch_async(dispatch_get_current_queue(), ^{
[self openSessionForPublishPermissions];
});

原因是reauthorize..的调用需要在调用openActiveSession..的事件循环之后。

关于ios - 带有发布权限回调的 Facebook iOS 3.1 sdk 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12915420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com