2010-06-10 114 views
70

我想显示我的应用程序画布页面内的用户配置文件图片,有没有办法使用图形api做到这一点?如何使用facebook图形API显示用户个人资料图片?

我知道我可以使用FBML来做,但我也想将配置文件图片传递给我制作的Flash游戏,因此我必须从api获取配置文件图片并将其作为变量发送,是代码我迄今,

$facebook = new Facebook(array(
    'appId' => FACEBOOK_APP_ID, 
    'secret' => FACEBOOK_SECRET_KEY, 
    'cookie' => true, 
    'domain' => 'myurl/facebook-test' 
)); 

$session = $facebook->getSession(); 

     $uid = $facebook->getUser(); 
     $me = $facebook->api('/me'); 

     $updated = date("l, F j, Y", strtotime($me['updated_time'])); 

     echo "Hello " . $me['name'] . $me['picture'] . "<br />"; 
    echo "<div style=\"background:url(images/bg.jpg); width:760px; height:630px;\">" . "You last updated your profile on " . $updated . "</div>" . "<br /> your uid is" . $uid; 

$me['picture']似乎并没有工作,但我还是很新的图形API,和我可能做了一些很业余的错误!

回答

125

知道用户ID为他们的个人资料图片的网址是: -

http://graph.facebook.com/[UID]/picture 

其中代替[UID]你把你的$ UID变量,而且这个网址可以通到

+0

,完美的工作!非常感谢! – Odyss3us 2010-06-10 10:12:19

+0

这不再'工作,是吗? – 2013-06-28 09:04:32

+5

它工作@PaxMaximinus – MeetM 2013-07-23 11:12:04

3

这是为我工作的代码!

假设你有一个有效的会话持续,

//Get the current users id 
$uid = $facebook->getUser(); 

//create the url 
$profile_pic = "http://graph.facebook.com/".$uid."/picture"; 

//echo the image out 
echo "<img src=\"" . $profile_pic . "\" />"; 

感谢名单去雷恩,你达人!

81

得到不同的尺寸,您可以使用类型参数:

可以指定你想要的类型参数图片尺寸,这应该是正方形的一个(50×50),小(50个像素宽,变高度)和大(大约200像素宽,可变高度):http://graph.facebook.com/squall3d/picture?type=large

+0

谢谢!我似乎无法在任何地方找到它,但我知道这是可能的! – 2011-02-24 02:37:13

+2

更有甚者,宽度/高度参数也适用,例如:width = 140&height = 140 – 2012-12-13 11:26:58

7
//create the url 
    $profile_pic = "http://graph.facebook.com/".$uid."/picture"; 

//echo the image out 
echo "<img src=\"" . $profile_pic . "\" />"; 

工作正常,我

1

我在同时使用curl获取个人资料照片中的问题。我想了一会儿有什么错我实现了Facebook的API,但我需要一个位添加到我的CURL叫:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
22

您还可以通过如下提供的参数调整的资料图片。

https://graph.facebook.com/[UID]/picture?width=140&height=140 

也可以工作。

更新: FB不再支持此功能。只是一组预定义的大小。

+0

FB文档https://developers.facebook.com/docs/graph-api/reference/v2.1/user/picture说'当使用高度和宽度时,图像将缩放为尽可能接近尺寸,然后裁剪下来。这是否意味着当我要求150x150时,它们会返回一些预定义尺寸123x123? – 2014-09-17 11:32:23

+1

其实找到答案我自己:当询问'/ picture?width = 450x450'时我被重定向到图像:'https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0- 1/c120.0.480.480/p480x480/10525666_10154418313275648_598202092662269872_n.jpg?somequerystring'这是一个'480x480'图片。当我要求'/ picture?width = 300&height = 300'时,我被重定向到'https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/c80 .0.320.320/p320x320/10525666_10154418313275648_598202092662269872_n.jpg'这是'320x320'图片。所以你对预定义的尺寸是正确的。 – 2014-09-17 11:43:18

1

一个非常重要的事情是,像其他Graph API请求一样,您将不会获得JSON数据作为响应,而是调用将HTTP REDIRECT返回到配置文件图片的URL。所以,如果您想要获取URL,您需要阅读响应HTTP头或者您可以使用FQL。

4

编辑:所以facebook又改变了它!不再使用用户名搜索 - 修改了下面的答案...

https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200 
  • UID =轮廓或页面ID
  • 重定向或者返回JSON(假)或 重定向到图像(真)
  • 高度和宽度是
  • 不需要作物认证

eg https://graph.facebook.com/4/picture?redirect=false&height=200&width=200

Facebook Graph picture doc

+1

这已不再有效(#803)无法通过用户名(查询) – Roni 2015-08-11 21:15:21

+1

@Roni查询用户但仍可以通过UID查询。它适用于我与UID。 – RredCat 2015-11-02 23:18:00

+1

@RredCat我没有说任何关于UID的东西,只是用户名--UID查询可能会工作很长时间 – Roni 2015-11-02 23:37:46

相关问题