PHP Facebook Graph API 和完整或更大尺寸的帖子图像

Posted

技术标签:

【中文标题】PHP Facebook Graph API 和完整或更大尺寸的帖子图像【英文标题】:PHP Facebook Graph API and full or larger size post images 【发布时间】:2016-04-13 06:52:43 【问题描述】:

进行了一些搜索,但什么都没有出现或者是旧的并且不起作用

我正在使用图形 api 获取 Facebook 帖子并在我的网站上对其进行格式化,URL/curl/json 正在工作;但是,返回的图片默认为最小的 130x130 版本。我在 foreach 循环中为每个帖子添加了第二个 json,以获取更大的图像 URL,但这会显着减慢页面加载速度。

帖子是否有一个参数可以抓取较大的 720x720 图像 URl,而不是默认拉取的微小图像。我尝试了用于第二个(循环中)的 fields=full_picture,但它不起作用。

也尝试使用 file_get_contents() 函数而不是 cURL 解决方案,但没有明显的速度差异

我还尝试对初始数组的图片数据进行字符串替换,但 facebook 现在将这些 oh= 和 oe= 标记添加到他们的图片 URL 中,因此该技巧也不起作用。

$limit = 20;
//App Info, needed for Auth
$app_id = "app id removed :)";
$app_secret = "seceret code removed :)";

$url = 'https://graph.facebook.com/'.$profile_id.'/posts?limit='.$limit.'&access_token='.$app_id.'|'.$app_secret;
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
$json = json_decode($data, true);

foreach($json[data] as $child) 
    $thisDate = $child['created_time'];
    $url='https://graph.facebook.com/' . $child['id'] . '?fields=full_picture&access_token='.$app_id.'|'.$app_secret;
    /*
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    $pic = json_decode($data, true);
    */
    $pic = json_decode(file_get_contents($url),true);


curl_close($ch);

此解决方案确实有效并提供了更大的图像,但由于循环内的额外 cURL 调用,只会减慢页面加载速度。

谢谢

【问题讨论】:

【参考方案1】:

您可以使用fields 参数在一个请求中获取该数据:

/me/posts?fields=message,full_picture

(如果您想要更多额外的字段,您也必须列出它们。)

【讨论】:

谢谢,通过添加消息选项有效。 fields 参数是否仅适用于一个选项? 不,当然它也适用于单个字段。 (只是假设您可能需要更多数据而不仅仅是图像。) 那很奇怪,字段是我发现并尝试的第一件事,但之前没有用:-/

以上是关于PHP Facebook Graph API 和完整或更大尺寸的帖子图像的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 Graph API 的 PHP SDK 访问 Facebook 事件的 RSVP 列表

Facebook API/PHP - 是不是可以通过 FB Graph API 更改用户的个人资料图片?

Facebook PHP SDK Graph API - 是不是可以访问 PAST 事件?

连接 Facebook Graph API 时 ElasticBeanstalk for PHP 上的 504 网关超时

PHP Facebook Graph API 和完整或更大尺寸的帖子图像

在生产服务器 codeigniter 3.1.2(PHP) Session Destroy 上自动从 facebook graph API 重定向?