通过PHP(用户id)/图片获取Facebook个人资料图片

通过PHP(用户id)/图片获取Facebook个人资料图片,php,facebook,facebook-graph-api,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,我在一个网站上工作,使用PHPSDK获取用户信息,包括用户图片。 {user id}/picture遇到流量时停止工作。 当我有好的流量时,我从facebook得到一个空响应。 我所说的空响应是指它们什么也不返回。只是一页空白 Facebook表示,他们不允许使用PHP保存图像 一般的想法是,您不应该将个人资料图片下载到 您的服务器,例如使用PHP代码。相反,你应该得到 图片的URL(例如来自重定向标题)和显示 它使用客户端上的图像标记 但像nametests(dot)com这样的大型网站不知何

我在一个网站上工作,使用PHPSDK获取用户信息,包括用户图片。
{user id}/picture
遇到流量时停止工作。 当我有好的流量时,我从facebook得到一个空响应。 我所说的空响应是指它们什么也不返回。只是一页空白

Facebook表示,他们不允许使用PHP保存图像

一般的想法是,您不应该将个人资料图片下载到 您的服务器,例如使用PHP代码。相反,你应该得到 图片的URL(例如来自重定向标题)和显示 它使用客户端上的图像标记

但像nametests(dot)com这样的大型网站不知何故设法获得了用户的图片

下面是我用来获取配置文件图片的示例代码(至少在工作时)


我在回答我自己的问题。 Facebook似乎对个人资料图片进行了限制。
因此,在多次请求后,它返回null

这可能是FB在最近的解密后对用户数据更加小心的结果吗?使用访问令牌以便Facebook知道谁在下载数据image@WizKid我正在我的原始脚本
graph.facebook.com/12345678/picture?token={token}中使用访问令牌
我还是一样problem@RiggsFolly可能是的,但是nametests[.]com是如何工作的呢?您从哪里获得用户ID?您使用的是什么类型的访问令牌?Facebook也给出了什么样的回应?
function get_file($url) {
      //$url=$url."&token=".$this->token;
      $options = array(
                  'http' => array(
                      'method'=>"GET",
                      'header'=>"Accept-language: en\r\n".
                      "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2\r\n"
                )
              );

      $context  = stream_context_create($options);

      $data = "";

      $data = @file_get_contents($url, false, $context);

      return $data;
    }

$im = get_file("http://graph.facebook.com/897924100371841/picture");
echo $im;