了解しました。FacebookIOSSDK(3.1.1)から基本的なユーザー情報を取得するのに苦労しています。他のプラットフォームでFB開発を行ったことで、私の問題はコードよりもFBアプリのセットアップに関係していると確信しています。ところで、私はiTunesにいて、iPhone用のiTunesIDを設定しました。また、アプリのバンドルIDを自分のバンドルIDと照合して、慎重にチェックし、4倍にチェックしました。
今のところ、テストユーザーで認証して、すべての詳細などを取得できます。これはうまく機能します。私のような実際のユーザーとしてログインすると(そして私はプロジェクトの開発者です)、Authトークンを取得しますが、ユーザーを取得するための呼び出しが失敗し、何が間違っているのかわかりません(テストユーザーは、すべての人に役立つはずです)。
ユーザーから取得する必要があるのは、BTWの名前、姓、FBユーザーID、および電子メールアドレス(オプションですが、要求されたもの)だけです。
現在、を使用して認証した後、私はゲームのチュートリアルを使用しています。ログインしたら、次のことを行います(ただし、他にも同じ結果が得られます)。
- (void)fbDidLogin
{
// removed the setup for the class level Facebook var that I am currently not using
// get information about the currently logged in user
NSString *fql = @"select uid, first_name, last_name, email from user where uid = me()";
NSDictionary *queryParam = [NSDictionary dictionaryWithObjectsAndKeys:fql, @"q", nil];
[FBRequestConnection startWithGraphPath:@"/fql"
parameters:queryParam
HTTPMethod: @"GET"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
[self meRequestResult:result WithError:error];
}];
}
meRequestResultルーチンは次のように開始します。
- (void)meRequestResult:(id)result WithError:(NSError *)error
{
if ([result isKindOfClass:[NSDictionary class]])
{
NSDictionary *dictionary;
if([result objectForKey:@"data"])
dictionary = (NSDictionary *)[(NSArray *)[result objectForKey:@"data"] objectAtIndex:0];
else
dictionary = (NSDictionary *)result;
[fbUserData release];
fbUserData = [dictionary retain];
NSString *facebookId = [dictionary objectForKey:@"id"];
if(!facebookId)
facebookId = [dictionary objectForKey:@"uid"];
// and more follows that is not pertinent
FBIOSSDKでリクエストロギングをオンにすると。私は同じことを見て、これらが何を意味するのかどこにも説明を見つけることができません。
ログの最後の10行ほどは次のとおりです。
2012-12-03 11:52:12.394 mTender[6572:1cd03] Reachability Flag Status: -R -----l- networkStatusForFlags
2012-12-03 11:52:12.395 mTender[6572:1cd03] The internet is working via WIFI.
2012-12-03 11:52:12.396 mTender[6572:1cd03] Reachability Flag Status: -R ------- networkStatusForFlags
2012-12-03 11:52:12.396 mTender[6572:1cd03] A gateway to the host server is working via WIFI.
2012-12-03 11:52:35.093 mTender[6572:1cd03] FBSDKLog: Request <#1111>:
URL: https://graph.facebook.com//fql?sdk=ios&access_token=ACCESS_TOKEN_REMOVED&q=select%20uid%2C%20first_name%2C%20last_name%2C%20email%20%20from%20user%20where%20uid%20%3D%20me%28%29&migration_bundle=fbsdk%3A20121003&format=json
Method: GET
UserAgent: FBiOSSDK.3.1.1
MIME: multipart/form-data; boundary=3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f
2012-12-03 11:52:37.194 mTender[6572:1cd03] Error: HTTP status code: 500
2012-12-03 11:52:37.196 mTender[6572:1cd03] FBSDKLog: Response <#1111> <Error>:
The operation couldn’t be completed. (com.facebook.sdk error 5.)
うまくいけば、誰かがこれを理解することができます。これがこのプロジェクトの最後のステップです。