Facebook Graph 2.9有方形图像

时间:2017-08-08 23:44:42

标签: php facebook facebook-graph-api facebook-php-sdk

我的网站上有一个Facebook API生成的Feed,显示我在Facebook上发布的最新帖子。在这种情况下,这是我写的关于劳伦图岛的一篇文章。当我访问我的Facebook页面时,图像如下所示:

Launtua Island rectangular picture

但是当我访问我的网站时,图像看起来像这样:

Launtua Island squre picture

似乎Facebook正在裁剪我的形象,但我不知道如何防止它。这是我使用的代码:

$feed = 'Feed Id';
$a_token = 'Secret Access Token';
$maximum = 1;

$url = "https://graph.facebook.com/v2.9/{$feed}/feed?access_token={$a_token}&limit={$maximum}";

$response = file_get_contents($url); 

$facebookString = $response;
$facebookArray = json_decode($facebookString);
$array = array();
foreach ( $facebookArray->data as $each ) {
    $each->message = preg_replace("/(https?:\/\/.*) ?$/", "<a target='_blank' href='$1'>$1</a>", $each->message);
    $row = array();
    $response = file_get_contents("https://graph.facebook.com/v2.9/{$each->id}/attachments?access_token={$a_token}");

    $image = json_decode($response);
    $src = $image->data[0]->media->image->src;
    if ($src == '') {
        $src = $image->data[0]->subattachments->data[0]->media->image->src;
    }

    $row['post'] = $each->message;
    $row['image'] =  $src;
    $row['time'] = strtotime($each->created_time);
    $array[] = $row;
}
$string = "";
foreach ($array as $entry) {
    $string .= "<div class='post'>";
    if ($entry['image'] != '') {
        $string .= "<img src='{$entry['image']}'>";
    }
    $string .= "<p>" . $entry['post'] . "</p>";
    $string .= "</div>";
}
echo $string;

我的问题有很多similar posts,但我不确定这是同一个问题(在提出请求时没有询问图片)还是另一个问题。< / p>

如果Facebook一直停止更改API,那就太棒了!

任何帮助都会受到赞赏。

谢谢。

0 个答案:

没有答案