gpt4 book ai didi

php - 从用户获取 Facebook 个人资料图片(通过 Graph)——检测它是否为空白(即默认)图片?

转载 作者:可可西里 更新时间:2023-10-31 23:51:58 25 4
gpt4 key购买 nike

我正在尝试获取在客户的 Facebook 页面上发表评论的人的个人资料照片,以便他们可以显示在网站等上。

我通过 /[page_name]/feed/ 图表调用获取用户 ID,并将其放入 URL 表单中,如下所示:

$id = $item['from']['id'];
$link = "http://graph.facebook.com/{$id}/picture?type=large";

它运行良好 - 我收到了一些个人资料图片,但有些看起来像这样:http://profile.ak.fbcdn.net/static-ak/rsrc.php/v1/yp/r/yDnr5YfbJCH.gif

我只想显示真实的个人资料照片 - 有没有办法检测到这一点?

最佳答案

Graph API 确实包含一个标志,允许您检测用户的 facebook 头像是否是默认头像...

您可以通过将 &redirect=false 附加到图形图像 URL 的末尾来完成此操作。

例如:

一个普通的图片 url,例如

http://graph.facebook.com/[USERNAME]/picture?type=large

将重定向到实际图像文件,给人以返回实际图像的印象。但是像

这样的 url
http://graph.facebook.com/[USERNAME]/picture?type=large&redirect=false

将返回 JSON - 类似于:

{"data": {
"url": "http://profile.ak.fbcdn.net/hprofile-ak-snc6/623549_1210877749_349605729_n.jpg",
"is_silhouette": false
}}

(来源:http://developers.facebook.com/docs/reference/api/using-pictures/)

更新:URI 已更改:type=large 不再有效,您现在必须像这样指定显式宽度/高度:

http://graph.facebook.com/[USERNAME]/picture?width=200&height=600

注意 "is_silhouette" 属性 - 它将是 truefalse。如果 true,则用户的 facebook 图片是默认图片。

在“内联”基础上做出这种判断将需要 cURL,您可以将它与您的代码集成,如下所示:

// Setup
$id = $item['from']['id'];
$link = "http://graph.facebook.com/{$id}/picture?type=large";

// Get avatar info from FB via cURL
$url = $link. "&redirect=false";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$avatarInfo = curl_exec($ch);
curl_close($ch);

// Process cURL response
$isDefaultAvatar = false;
if ($avatarInfo)
{
$avatarInfo = json_decode($avatarInfo);
if (isset($avatarInfo->data->is_silhouette) && $avatarInfo->data->is_silhouette) $isDefaultAvatar = true;
}

// Output
echo "This " .($isDefaultAvatar ? "IS" : "IS NOT"). " a default avatar.";

关于php - 从用户获取 Facebook 个人资料图片(通过 Graph)——检测它是否为空白(即默认)图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7984041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com