当我使用iPhone时,我正在使用Facebook Leader发布在iOS 7中工作得很好的分数,但是当我使用iPad与iOS 7时它会提供null访问令牌。当我使用旧版iPad时,它也正常工作。只有当我在iOS上使用iPad时才会遇到这个问题。
代码段:
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
NSLog(@" access==%@",[FBSession activeSession].accessTokenData.accessToken);
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[FBSession activeSession].accessTokenData.accessToken,@"access_token",[NSString stringWithFormat:@"%d",time], @"score",nil];
[FBRequestConnection startWithGraphPath:@"me/scores"
parameters:params
HTTPMethod:@"POST"
completionHandler:
^(FBRequestConnection *connection, id result, NSError *error) {
// Handle results
NSLog(@"result==%@ eror==%@",result,error);
}];
}];
错误消息:
Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x16573530 {com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 2500;
message = "An active access token must be used to query information about the current user.";
type = OAuthException;
};
};
code = 400;
}, com.facebook.sdk:HTTPStatusCode=400}
我被困在这里。请指出一些方法。我的实施有什么问题。
答案 0 :(得分:0)
您应该使用session
而不是[FBSession activeSession]
,因为目前在此Block方法中,您是从前一个会话中查询访问令牌,即从[FBSession activeSession]
而不是从session
返回的[FBSession openActiveSessionWithPublishPermissions:^block
{1}}。或者至少在获得accessstoken之前指定[FBSession setActiveSession:session];
。