【问题标题】:read and publish permission in facebook sdk 3.0 iOS在 facebook sdk 3.0 iOS 中读取和发布权限
【发布时间】:2013-06-23 10:12:07
【问题描述】:

在上一个 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) 这些会话可以同时打开吗?只有当用户想要发布时,我才会请求发布权限,但我应该对另一个会话做其他事情吗?喜欢先关闭它,然后再重新打开它,或者我不应该担心?

2) 例如,如果我有一个 postToFriends 按钮,我的伪代码会是这样的,对吧?

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

    }

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

【问题讨论】:

    标签: ios facebook


    【解决方案1】:
    1. 您所指的两个会话实际上是同一个会话(它是在调用 openActiveSession... 后静态可用的“活动”会话)。所以你不需要对另一个会话做任何事情。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-30
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多