Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
facebook sdk 3.0 iOS中的读取和发布权限_Ios_Facebook - Fatal编程技术网

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

facebook sdk 3.0 iOS中的读取和发布权限,ios,facebook,Ios,Facebook,在上一个SDK中,读取和发布权限是分开的。因此,在我的代码中,每当用户登录时,我都使用以下代码: [FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler: ^(FBSession *session, FBSess

在上一个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子句。你能帮我吗

  • 您提到的两个会话实际上是同一个会话(在调用openActiveSession…后,它是静态可用的“活动”会话)。因此,您不需要对其他会话执行任何操作

  • 您应该看看SDK附带的美味或Hello Facebook示例应用程序。它们都给出了如何发布(同时请求发布权限)的示例