2012-09-05 40 views
1

我正在使用iPhone的Facebook SDK。我需要能够在一个请求中检索经过身份验证的用户详细信息和个人资料图片。iPhone Facebook SDK 3在一个请求中获取用户详细信息和个人资料图片

在SDK的测试版中,我曾经可以使用下面的代码执行此操作,但它现在只返回用户标识和图片url。

[FBRequestConnection startWithGraphPath:@"me" parameters:[NSDictionary dictionaryWithObject:@"picture" forKey:@"fields"] HTTPMethod:@"GET" completionHandler:^(FBRequestConnection *connection, id result, NSError *error)... 

有没有办法在一个请求中做到这一点?非常感谢您的任何建议。

[编辑]我也应该提到,我需要直接使用URL字符串,因为我没有使用Facebook的新FBProfilePictureView类。

回答

7

脑屁!我应该在参数字典中包含我想返回的所有属性。我在Facebook的文档印象中,你只需要包含图片属性,如果你想它与用户信息返回。正确的请求如下:

[FBRequestConnection startWithGraphPath:@"me" 
         parameters:[NSDictionary dictionaryWithObject:@"picture,id,birthday,email,first_name,last_name,gender,username" forKey:@"fields"] 
         HTTPMethod:@"GET" 
        completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 

        }]; 
+0

不使用i获取用户的名字和姓氏吨。 –

+0

Hi Bullet Raja。这个问题/答案已近两年了,在这段时间内Facebook可能已经改变了他们的API。 – bennythemink

+1

嗨bennythemink我刚刚在参数中添加first_name,last_name,它的工作原理。 –

0

这里是一个更新的解决方案。

var basicUserData = ["fields": "picture,id,birthday,email,first_name,last_name,gender"] 

FBRequestConnection.startWithGraphPath("/me", 
    parameters: basicUserData, 
    HTTPMethod: "GET") { 
     (connection:FBRequestConnection!, result, error) -> Void in 
      if error != nil { 
       print(error!) 
      } else { 
       print(result!) 
      } 
     } 

解析团队建议通过访问https://graph.facebook.com/(facebookId)/picture?type=large确保与用户的Facebook ID来代替让FB资料图片。 Here is the discussion

注:

相关问题