我正在使用iPhone的Facebook SDK。我需要能够在一个请求中检索经过身份验证的用户详细信息和个人资料图片。
在SDK的测试版中,我过去可以使用下面的代码来完成这项工作,但现在它只返回用户id和图片url。
[FBRequestConnection startWithGraphPath:@"me" parameters:[NSDictionary dictionaryWithObject:@"picture" forKey:@"fields"] HTTPMethod:@"GET" completionHandler:^(FBRequestConnection *connection, id result, NSError *error)...
有没有办法在一个请求中做到这一点?非常感谢你的建议。
[EDIT]我可能还应该提到,我需要直接到图像的URL字符串,因为我没有使用Facebook的新FBProfilePictureView类。
脑放屁!我应该在参数字典中包含我想要返回的所有属性。我从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) {
}];
这是一个更新的解决方案。
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!)
}
}
Parse团队建议通过访问https://graph.facebook.com/(facebookId)/图片?type=large确保替换为用户的Facebook Id。以下是讨论
注:
- 用户名字段在FacebookSDK v2之后被弃用
- "/me"是正确的端点,而不是"me"
- 此要点显示了与Facebook Graph的许多其他交互