0

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

$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
4

1 回答 1

0

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

<?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/pictureAPI 端点会返回 301 重定向到照片网址。

于 2012-08-18T17:07:37.717 回答