在Facebook iOS SDK 3.5.x中获取Facebook页面访问令牌

问题描述:

我有一个Facebook页面,我是管理员。我已登录Facebook &获得FBSession.actionSession。即isOpen = YES在Facebook iOS SDK 3.5.x中获取Facebook页面访问令牌

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            @"access_token", @"fields", 
            nil]; 
    FBRequest *req = [FBRequest requestWithGraphPath:myPageID parameters:params HTTPMethod:@"POST"]; 
    [req startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      NSLog(@"Result: %@", result); 
     }); 
    }]; 

但我在resultnil。我知道我必须添加manage_pages权限,但在哪里添加呢?

注:我使用Facebook的SDK 3.5.3

从调试日志附加信息:

2013-06-27 12:18:34.722 TestFBPostPage[13224:19a03] FBSDKLog: Request <#1113>: 
    URL: https://graph.facebook.com/MY_PAGE_ID?sdk=ios&fields=access_token&migration_bundle=fbsdk%3A20130409&format=json&access_token=ACCESS_TOKEN_REMOVED 
    Method: POST 
    UserAgent: FBiOSSDK.3.5.3 
    MIME: multipart/form-data; boundary=3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f 
    Attachments: 
    sdk: ios 
    fields: access_token 
    migration_bundle: fbsdk:20130409 
    format: json 
    access_token: ACCESS_TOKEN_REMOVED 

2013-06-27 12:18:34.952 TestFBPostPage[13224:19a03] FBSDKLog: Error: HTTP status code: 403 
2013-06-27 12:18:34.954 TestFBPostPage[13224:19a03] FBSDKLog: Response <#1113> <Error>: 
The operation couldn’t be completed. (com.facebook.sdk error 5.) 
+0

我也有这个问题。 – Banshi

那么,这是SDK 4.x的,但这里是我已经得到得到它的工作

__block NSString *pageToken; 
     FBSDKGraphRequest *newRequest = [[FBSDKGraphRequest alloc] initWithGraphPath:[NSString stringWithFormat:@"/%@/accounts", [FBSDKAccessToken currentAccessToken].userID] parameters:nil HTTPMethod:@"GET"]; 
     [newRequest startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 

      if (error) { 
       NSLog([error localizedDescription]); 
      }else{ 
       //here you made need to do some debugging. not sure how it works with multiple pages 
       pageToken = [[[result objectForKey:@"data"] objectAtIndex:0] objectForKey:@"access_token"]; 


     }]; 

同样,不能完全肯定它是如何工作的,当用户为多页的管理员,但,但对于单页管理员,这是我得到了什么工作