如何从Facebook Graph api获取大尺寸图片

时间:2015-10-17 05:45:54

标签: php facebook-graph-api

我已经编写了代码来获取php中的facebook图片并将其上传到我们的服务器上并且工作正常,但我从facebook获得的图像尺寸较小。以下是我的代码:

$user = array();

    $fb = new \Matrimony\Lib\Facebook\Facebook([
        'app_id' => $this->api_key,
        'app_secret' => $this->api_secret,
    ]);

    $helper = $fb->getRedirectLoginHelper($this->redirect_login_url);    
    $facebookClient = $fb->getClient();

    try {
        $accessToken = $helper->getAccessToken($this->redirect_login_url);
        $response = $fb->get('/me?fields=photos.limit(12){name, picture.type(normal)}', $accessToken);

    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        // When Graph returns an error
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        // When validation fails or other local issues
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }

    if (isset($accessToken)) {
        // Logged in
        // Store the $accessToken in a PHP session
        // You can also set the user as "logged in" at this point
    } elseif ($helper->getError()) {
        // There was an error (user probably rejected the request)
        echo '<p>Error: ' . $helper->getError();
        echo '<p>Code: ' . $helper->getErrorCode();
        echo '<p>Reason: ' . $helper->getErrorReason();
        echo '<p>Description: ' . $helper->getErrorDescription();
        exit;
    }
    $data = $response->getDecodedBody();

我已经看过多篇帖子,但单身并没有为我工作。我尝试了多种组合&#39; picture.type(normal)&#39;例如,我使用大型,方形而不是普通的,但它没有用。

如果有人知道解决方案,请告诉我。

谢谢

1 个答案:

答案 0 :(得分:4)

我还没有尝试使用流/ Feed照片,但普遍接受的做法是:

http://graph.facebook.com/{ID of object}/picture?type=large

如果你想要&#34;大&#34;版本,你会这样做:

$response = $fb->get('/me?fields=photos.limit(12){name, picture.type(normal)}', $accessToken);

我不能100%确定这是否适用于实际照片(而不是用户个人资料图片或页面个人资料照片),但我会预感它 - 唯一的警告是你显然必须有有权查看照片的登录用户(除非它是公开的)。

对于专辑大图片替换

$response = $fb->get('/me?fields=photos.limit(12){name, images.type(normal)}', $accessToken);
  


RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

源成员是指向完整照片的链接,而不是图片成员提供的缩略图链接。

参考链接:https://developers.facebook.com/docs/reference/api/photo/