使用iOS图形API检索Facebook检查 - 没有数据

时间:2013-05-15 07:20:37

标签: ios objective-c facebook facebook-graph-api

我正在尝试使用Facebook的Graph API从iPhone应用程序中检索自己的签到列表。我已经请求了一个令牌,并且能够访问我的个人资料信息和我的朋友列表,但是当我请求签到时,我总是得到一个空的记录集。我猜这与我请求的权限有关,但我可以在Facebook Graph API Explorer(https://developers.facebook.com/tools/explorer?method=GET&path=me%2Fcheckins)上使用相同的权限进行查询,我确实获得了数据。

令牌请求:

NSArray *perm = [NSArray arrayWithObjects: 
    @"user_status", @"user_events", @"user_location",
    @"friends_checkins", @"friends_status", nil];

[FBSession openActiveSessionWithReadPermissions:perm
                                   allowLoginUI:YES
                              completionHandler:
 ^(FBSession *session,
   FBSessionState state, NSError *error) {
     //handle the session opening
 }];

然后当我尝试检索签到时(在单独的视图控制器中):

[[FBRequest requestForGraphPath:@"/me/checkins"] startWithCompletionHandler:
 ^(FBRequestConnection *connection,
   NSDictionary<FBGraphObject> *checkins,
   NSError *error) {
     if (!error) {
         NSLog(FBSession.activeSession.description);
         NSArray *data = [checkins objectForKey:@"data"];
         for (FBGraphObject *c in data) {
             //execution never gets here because data is empty
         }
     }
 }];

执行永远不会到达for循环,因为data变量为空。

我在for循环之前打印出当前会话状态,以确保一切正确。结果是:

<FBSession: 0x15555555, state: FBSessionStateOpen, loginHandler: 0x5555555, appID: 
55555555555, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 
0x15555555>, expirationDate: 4001-01-01 00:00:00 +0000, refreshDate: 2013-05-15 06:55:56 
+0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(
    "user_status",
    "user_events",
    "user_location",
    "friends_checkins",
    "friends_status"
)>

我无法弄清楚我可能缺少什么。

0 个答案:

没有答案