我試圖在我的應用程序中實現Facebook登錄並且它正在工作(我正在獲取訪問令牌),但每當我嘗試創建圖形請求時,下面的消息說,我需要一個有效的訪問令牌,以便使請求到圖形API:Facebook授權不起作用(iOS本機應用程序)
Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x6a99fa0 {
error=<CFBasicHash 0x6a99050 [0x1582b48]>{
type = mutable dict, count = 3,
entries =>
2 : <CFString 0x6a99340 [0x1582b48]>{contents = "type"} = <CFString 0x6a994d0 [0x1582b48]>{contents = "OAuthException"}
3 : <CFString 0x6a99470 [0x1582b48]>{contents = "message"} = <CFString 0x6a993d0 [0x1582b48]>{contents = "An active access token must be used to query information about the current user."}
6 : <CFString 0x6a52270 [0x1582b48]>{contents = "code"} = 2500
}
}
對提出請求的代碼看起來像(也許我需要令牌在這裏添加訪問?):
[facebook requestWithGraphPath:@"me" andDelegate:self];
現在我知道一個事實,即訪問令牌是可以的,因爲在init
方法我稱之爲更新,如果有必要的方法:
[facebook extendAccessTokenIfNeeded];
我也是實現委託方法extendAccessTokenIfNeeded
:
-(void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt {
NSLog(@"token extended"); //This NSLog hasn't been called, so I know the extending access token method wasn't fired...
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:accessToken forKey:@"FBAccessTokenKey"];
[defaults setObject:expiresAt forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
現在我缺少什麼嗎?我需要將訪問令牌添加到圖API請求嗎?如果是這樣,怎麼樣?
順便說一下,我也知道,如果我向公共路徑發出圖形請求,它會很好地工作。
您正在使用的所有相同的委託方法,如requestDidLoad/requestDidFailWithError?而不是使用他們現在棄用的REST API? – byteSlayer 2012-08-03 14:24:59
只是試了一下,並得到了相同的錯誤信息.... – byteSlayer 2012-08-03 14:29:22
關於委託 - 是的,我知道NSLog(@「%@」,request.url)不可用令牌。在requestDidFailWithError中。關於REST API - 它看起來像不,我認爲它使用圖表api – aknew 2012-08-03 14:33:50