好吧,我从 Facebook IOS SDK (3.1.1) 获取一些基本的用户信息时遇到了麻烦。在使用其他平台完成 FB 开发后,我非常确信我的问题与 FB 应用程序的设置有关,而不是与我的代码有关。顺便说一句,我在 iTunes 中并为 iPhone 设置了 iTunes ID。我还仔细检查并四次检查了应用程序设置中的捆绑 ID 与我的捆绑 ID。
现在我可以通过测试用户进行身份验证并获取所有详细信息等。它工作得很好。当我以像我这样的真实用户身份登录时(并且我是该项目的开发人员),我得到了一个 Auth 令牌,但是让用户失败的调用失败,我不确定我做错了什么(如果它适用于一个测试用户,它应该适用于所有人)。
我只需要从用户那里得到,顺便说一句,就是他们的名字、姓氏、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
当我在 FB IOS SDK 中打开请求日志记录时。我看到同样的事情,在任何地方都找不到任何描述这些是什么意思。
这是日志中的最后 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.)
希望有人能解决这个问题。这是这个项目的最后一步..