我想知道是否有一种简单的方法可以通过facebook php sdk从我的应用程序中检索用户的封面照片。
提前致谢。
答案 0 :(得分:35)
Facebook似乎最近将封面字段添加到用户对象
https://graph.facebook.com/facebookuserid?fields=cover会为您提供用户封面照片详情
Facebook Doc Link:http://developers.facebook.com/docs/reference/api/user/
答案 1 :(得分:24)
我认为最简单的方法是使用图形api:
http://graph.facebook.com/{user_id or page_id}?fields=cover
并解析返回的JSON。
{
"cover": {
"id": "XXX",
"source": "https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-ash4/311205_989690200741_1231438675_n.jpg",
"offset_y": 66
},
"id": "XXXXXX"
}
答案 2 :(得分:9)
SELECT pic_cover FROM user WHERE uid='yourUserId'
字段pic_cover尚未记录但可用。 响应应如下所示:
[
{
"pic_cover": {
"cover_id": someId,
"source": "someUrl",
"offset_y": someOffset
}
}
]
答案 3 :(得分:4)
Graph API的最新版本(2.4是撰写本文时的最新版本)支持'图片'返回用户个人资料图片的字段。值得一试。
/<user-id>?fields=id,name,picture
答案 4 :(得分:2)
我认为最好问一下专辑的类型然后命名。
$albums = $facebook->api("/me/albums");
$album_id = "";
foreach($albums["data"] as $item){
//echo $item["id"]." - ".$item["name"]." - ".$item["type"]." - ".$item["cover_photo"]."<br/>";
if($item["type"] == "profile"){
$album_id = $item["id"];
$profile_picture_id = $item["cover_photo"];
break;
}
}
答案 5 :(得分:1)
在这个阶段看来,等待来自facebook的更新文档,您的方法是检索用户时间线封面的唯一“确定的方法”。
如果您发现此方法速度慢或效率低 - 也许您可以尝试将其作为cron作业运行并且具有最小的更新延迟。例如。每天运行两次cron(可能更多),一次可以处理两个或三个用户并且每2分钟运行一次cron ...
不是说解决方案;更多的建议。
答案 6 :(得分:1)
我使用:http://graph.facebook.com/ {user_id或page_id}?fields = cover
浏览器返回:
{
"cover": {
"id": "XXX",
"source": "https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-ash4/311205_989690200741_1231438675_n.jpg",
"offset_y": 66
},
"id": "XXXXXX"
}
如何将字段'source'添加到php varible?
老兄,我不能回复,所以我在这里发帖。 :(
答案 7 :(得分:1)
它试图通过php自动从图像中恢复
$json = file_get_contents("https://graph.facebook.com/PROFILE_ID?fields=cover");
$obj = json_decode($json);
echo $obj->cover ->source;
答案 8 :(得分:1)
我使用的是用户名而不是id,它可以工作:
http://graph.facebook.com/{username}?fields=cover
相应地解析JSON。
答案 9 :(得分:1)
我使用了https://graph.facebook.com/facebookuserid?fields=cover链接但是没有用。当我搜索Facebook SDK文档时,我看到了有效的答案。 我希望这对你有所帮助。
[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"/%@?fields=cover", [user objectForKey:@"id"]]
completionHandler:^(
FBRequestConnection *connection,
id result,
NSError *error
) {
NSLog(@"%@",[[result objectForKey:@"cover"]objectForKey:@"source"]);
/* handle the result */
}];
结果是一种字典。您可以在&#34;封面&#34;下看到用户封面照片的链接。标签及其来源&#34;标签也。
答案 10 :(得分:0)
function getCover() {
FB.api('/me?fields=cover', function(response) {
document.getElementById('cover').innerHTML =
"<img src='" + response.cover['source'] + "' alt='' />"
});
}
答案 11 :(得分:-3)