ios - facebook sdk 3.0 iOS 中的读取和发布权限

标签 ios facebook

在上一个SDK中,读取和发布权限是分开的。因此,在我的代码中,每当用户登录时我都会使用以下代码:

[FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {
         [self sessionStateChanged:session state:state error:error];
     }];

我在facebook开发者中看到,当我想要发布时,我应该像这样请求发布权限:

// can include any of the "publish" or "manage" permissions
NSArray *permissions = 
    [NSArray arrayWithObjects:@"publish_actions", nil];

[[FBSession activeSession] reauthorizeWithPublishPermissions:permissions
                           defaultAudience:FBSessionDefaultAudienceFriends
        completionHandler:^(FBSession *session, NSError *error) {
         /* handle success + failure in block */
         }];

由于这是我使用 Facebook 集成的第一个应用程序,我想问一些问题:

1) 这些 session 可以同时打开吗?仅当用户想要发布时,我才会请求发布权限,但我应该对其他 session 执行其他操作吗?比如先关闭它,然后再重新打开它,否则我不应该担心?

2) 例如,如果我有一个 postToFriends 按钮,那么我让它工作的伪代码就会像这样,对吗?

- (IBAction)postToFriendaction:(id)sender {
    if (!FBSession.activeSession.isOpen) {
        /* code from the above for enabling publish permissions*/

    }

或者我应该将 !FBSession.activeSession.isOpen 更改为其他内容,因为没有用户仅以读取权限登录,他永远不会输入 if 子句。你能帮我吗?

最佳答案

  1. 您引用的两个 session 实际上是同一个 session (它是在调用 openActiveSession... 后静态可用的“事件” session )。因此您无需对其他 session 执行任何操作。

  2. 您应该查看 SDK 附带的 Scrumptious 或 Hello Facebook 示例应用程序。他们都给出了如何发帖的示例(同时请求发布权限)。

关于ios - facebook sdk 3.0 iOS 中的读取和发布权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259697/

相关文章:

ios - Facebook 导入详细信息 ios

ios - 无法将结构从非托管库编码为单触摸中的托管代码

ios - 具有存储字符串日期的 Firebase 云消息传递

c++ - 设备陀螺仪(加速度计)在 Cocos2dx-2.2.6 中无法与 -ObjC 链接器标志一起使用

ios - 属性属性 'nonnull' 和 'weak' 是互斥的

使用 Graph API 在 Facebook 页面上提及 Facebook

Facebook Like 按钮的 Android WebView

Spring Boot 社交登录和本地 OAuth2-Server

javascript - 如何通过 Graph API 和 Javascript-SDK 从 iframe 应用程序检查喜欢的粉丝页面

ios - mas_updateConstraints 没有移除 Masonry 中的约束