获取 Facebook 图片 URL

Get Facebook image URL

我想使用 PHP/Laravel 中制作的网络应用程序备份用户的所有 Facebook 照片。我现在做的是:

  1. 我先获取所有带/me/albums

    的专辑
  2. 然后我用 /<album id>/photos

    从每个相册中获取所有照片
  3. 然后我用 /<photo id>/picture?type=normal

    检索每张照片

这让我明白了:

Facebook\FacebookResponse::__set_state(array(
   'httpStatusCode' => 302,
   'headers' => 
  array (
    'x-app-usage' => '{"call_count":0,"total_cputime":0,"total_time":0}',
    'location' => 'https://scontent.fros6-1.fna.fbcdn.net/v/t31.0-8/s720x720/241688_10150189954577077_6076941_o.jpg?_nc_cat=106&ccb=2&_nc_sid=e007fa&_nc_ohc=6BG0bnvmDO0AX-ayiLu&_nc_ht=scontent.fros6-1.fna&tp=7&oh=2eb322e48d2bcba4c4f06b95d8803922&oe=5FE0AF19',
    'expires' => 'Sat, 01 Jan 2000 00:00:00 GMT',
    'x-fb-request-id' => 'AV2g1mnIDjWDzIgHyD48oNx',
    'strict-transport-security' => 'max-age=15552000; preload',
    'x-fb-trace-id' => 'E5eCApEMOPW',
    'facebook-api-version' => 'v9.0',
    'content-type' => 'image/jpeg',
    'x-fb-rev' => '1003022644',
    'cache-control' => 'private, no-cache, no-store, must-revalidate',
    'vary' => 'Accept-Encoding',
    'pragma' => 'no-cache',
    'access-control-allow-origin' => '*',
    'x-fb-debug' => '9brMqjQf3QpZ95/RjANHrhZvYY30VzEivA91+bsysa+SwAib5U6gZl5jlqjOscOusDviJe0wjoCuIJoyc67bbQ==',
    'content-length' => '0',
    'date' => 'Sun, 22 Nov 2020 17:22:05 GMT',
    'alt-svc' => 'h3-29=":443"; ma=3600,h3-27=":443"; ma=3600',
  ),
   'body' => '',
   'decodedBody' => 
  array (
  ),
   'request' => 
  Facebook\FacebookRequest::__set_state(array(
     'app' => 
    Facebook\FacebookApp::__set_state(array(
       'id' => '<hidden>',
       'secret' => '<hidden>',
    )),
     'accessToken' => <hidden>,
     'method' => 'GET',
     'endpoint' => '/10150189954577077/picture?type=normal',
     'headers' => 
    array (
      'Content-Type' => 'application/x-www-form-urlencoded',
    ),
     'params' => 
    array (
    ),
     'files' => 
    array (
    ),
     'eTag' => NULL,
     'graphVersion' => 'v9.0',
  )),
   'thrownException' => NULL,
))

所以我需要的是位置。我将该对象存储在 $response 中。但我不能做 $response['headers'] 因为它说不是一个数组(使用 json_encode 给出和空数组)并且也不能做 $response->headers 或 $response-> headers() 因为它说它受到保护。 谁可以访问该 Facebook 响应中的图像位置?

PHP SDK 显然在 FB 文档中不再有专门的部分,它们直接重定向到 GitHub。

如果您检查那里的 /docs/reference 文件夹并查找有问题的 class,您可以找到那里列出的可用 public 方法。

https://github.com/facebookarchive/php-graph-sdk/blob/master/docs/reference/FacebookResponse.md

getHeaders()
public array getHeaders()
Returns the response headers that were returned.