2010-06-10 162 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

相關問題