【问题标题】:Trouble in getting fb user's profile image无法获取 fb 用户的个人资料图片
【发布时间】:2012-08-18 16:21:21
【问题描述】:

我想将用户的个人资料图片放在另一张图片上,我尝试了以下代码来检索用户个人资料图片

$url='https://graph.facebook.com/'.$uid.'/picture?type=large';
$userpic = imagecreatefromjpeg($url);
imagejpeg($userpic, "xyz.jpg", 100);

但是我收到了这个错误:

imagecreatefromjpeg() [function.imagecreatefromjpeg]: Cannot read image data in /home/a3111484/public_html/fb/index.php

我也尝试了file_get_contents(),但在这种情况下,只会创建一个空的 jpg 文件。

请帮我找出问题所在。

我也尝试了 cURL 方式,但得到了这个错误:

Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home/a3111484/public_html/fb/index.php on line 31

【问题讨论】:

  • 该代码是否已简化?第 2 行定义了$userpic,但第 3 行使用了$mainphoto。此外,由于这两行之间没有进行任何修改,为什么需要使用imagecreatefromjpegimagejpeg 而不仅仅是下载原始数据?或者,就此而言,热链接到 facebook 托管的图像?
  • @IMSoP 对不起,我现在更新了代码。实际上我需要修改图像,因为这样它不起作用我尝试使用 file_get_contents() 下载图像但它什么也没检索。
  • 您可以从以下链接获得帮助。 [点击这里][1] [1]:stackoverflow.com/questions/5429964/…
  • 啊,好的。 file_get_contents() 是否返回任何数据(尝试echo strlen(file_get_contents($url));)?请注意,这种下载数据的方法依赖于 PHP 设置 allow_url_fopen (uk3.php.net/manual/en/…),这可能在您的服务器上被禁用。如果是这种情况,您需要尝试另一种方法,例如 CURL (php.net/curl)
  • @IMSoP Nothing, echo strlen(file_get_contents($url));返回 0

标签: php facebook user-profile


【解决方案1】:

我认为这将满足您的需求:

<?php
$q = $_GET['q'];
$img = imagecreatefromstring(file_get_contents('https://graph.facebook.com/'.$q.'
   /picture?type=large'));
Header( "Content-type: image/jpeg");
imagejpeg($img);
imagedestroy($img);

这在我的网站上是facebook_img.php

我使用这样的代码将图像添加到页面:

printf('<meta property="og:image" content="/path/to/facebook_img.php?q=%s" />', $fb_user_id);

@IMSoP:您需要做一些像这样复杂的事情,因为id/picture API 端点会返回一个 301 重定向到照片网址。

【讨论】:

  • 不确定为什么 301 重定向会对此产生任何影响。浏览器应该很乐意渲染通过重定向提供给它的图像。
  • 更新了我的例子。是的,浏览器很乐意在 标记中显示它,但您不能对元数据使用 301 重定向。
  • 啊,这更有意义。一个 Facebook API(“og:”元数据标签)被另一个(简单的个人资料图片查找 URL)击败的案例!
猜你喜欢
  • 2017-09-01
  • 1970-01-01
  • 2022-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
相关资源
最近更新 更多