2011-07-20 22 views
0

FacebookグラフAPI、より正確にはiOS SDKに問題があります。私のコードは正常に動作するために使用されるが、今(個人フィード、友人のフィード、フレンドリスト、...を取得するために)それを使うのですかしようとしたとき、私は、このエラーの説明を取得します:iOS SDKのFacebookグラフAPIの問題

Err details: Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x7113b80 {error=<CFBasicHash 0x7113910 [0x176e400]>{type = mutable dict, count = 2, 
entries => 
    2 : <CFString 0x7121e60 [0x176e400]>{contents = "type"} = <CFString 0x7113a20 [0x176e400]>{contents = "OAuthException"} 
    3 : <CFString 0x7113b40 [0x176e400]>{contents = "message"} = <CFString 0x7113a00 [0x176e400]>{contents = "An access token is required to request this resource."} 
} 
} 

誰がどこのアイデアを持っているだろう来るかもしれない?ここで

は私のソースコードがあまりにもある:

facebook = [[Facebook alloc] initWithAppId:@"00000000000000"]; 
    NSArray *permissions = [[NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"offline_access",nil] retain]; 
    [facebook authorize:permissions delegate:self]; 
    [facebook requestWithGraphPath:@"1342568689/feed" andDelegate:self]; 
+0

http://stackoverflow.com/の可能性の重複質問/ 4950337/get-random-facebookerrdomain-error-10000 –

答えて

0

まあ、私は間違いなく自分自身少しトリッキーなことをFacebookのSDKを見つけましたが、ここで私はそれがうまくいけば役立つ見ているカップルの事ですました。

まず、質問に付随するコードを入力するときに、2つの方法を間違ってコピーした可能性があります。 "facebook"オブジェクトの割り当てはデリゲートが設定されている場所であり、 "authorize"メソッドはNSMutableDictionaryのパラメータしか取っていません。明確さのために、コードは次のようになります。それはさておき

facebook = [[Facebook alloc] initWithAppId:@"00000000000000" andDelegate:self]; 
NSArray *permissions = [[NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"offline_access",nil] retain]; 
[facebook authorize:permissions]; 
[facebook requestWithGraphPath:@"1342568689/feed" andDelegate:self]; 

、唯一の本当の問題は、アプリが完全に承認されるまでの時間を持っていた前に、あなたがグラフAPIへの呼び出しを行っているということです。これらの呼び出しはすべて非同期に行われるため、認証プロセスが実際に有効なアクセストークンを返す前に、メインスレッドがrequestWithGraphPath:andDelegate呼び出しに移動しているためです。この呼び出しをボタンonClickハンドラに移動したり、より直接的なテストのためにFacebookセッションデリゲートメソッドfbDidLoginに移動したりできます。

希望に役立ちます!

0

はまた、offline_accessは廃止予定されている、彼らはマニュアルを参照してくださいtoken-拡張するアプリinitのチェックをやって提案しますが、ここではスニペット:

-(void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt { NSLog(@"token extended"); [self storeAuthData:accessToken expiresAt:expiresAt]; }