2010-12-13 39 views
2

我在Facebook上有一個粉絲頁面,我想向喜歡該頁面的人員展示聖誕郵件。在Facebook頁面上顯示用戶名稱Tab

的理念是:

如果用戶喜歡頁面>說:「聖誕快樂FIRST_NAME」 如果用戶不喜歡的頁面>顯示通用消息

我想我能夠得到用戶的第一個名字就顯示出來,因爲我不想存儲任何東西,但迄今爲止沒有成功。

我的代碼是:

require 'facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'xx', 
    'secret' => 'xx', 
    'cookie' => true, 
)); 

$session = $facebook->getSession(); 

$me = null; 

if ($session) 
{ 
    try 
    { 
    $uid = $facebook->getUser(); 
    $me = $facebook->api('/me'); 
    } 
    catch (FacebookApiException $e) 
    { 
    error_log($e); 
    } 
} 

$name = $me['first_name']; 

echo 'Merry Christmas x ' . $name . ' x ' . $uid; 

但所有與之呼應的是: 「聖誕X X 106998XX369535

該號碼所在頁面的ID,而不是用戶的ID。

有沒有辦法做到這一點,而不要求用戶的許可?

謝謝您的幫助

回答

1

我找到了答案。

只需使用:在TAB/Canvas應用上顯示用戶的名稱。

它也適用於靜態FBML應用程序。

寫作:

Merry Christmas <fb:userlink uid="loggedinuser"/> 

會顯示:

Merry Christmas John Smith 

如果約翰史密斯查看它:)

的名字將被格式化爲一個鏈接,但你可以用它樣式CSS。

+0

「此方法已被棄用。」根據http://developers.facebook.com/docs/reference/fbml/userlink – jamietelin 2010-12-17 11:48:16

+0

是的,這就是爲什麼我沒有在第一位測試它,但它運作得非常好。去圖... – Andre 2011-01-13 12:29:26

+0

這不再有效。 – Bit68 2016-06-14 01:27:24

2

除非用戶允許,你不能獲得有關用戶的任何信息。不幸。

但是對於「Canvas 2.0 OAuth 2.0」,您確實收到了signed_request POST。這種方法是唯一的解決方法。 http://developers.facebook.com/docs/authentication/canvas

但用戶仍然需要授權您的應用程序。

+0

那麼什麼是 for? – Andre 2010-12-14 09:48:01

+0

那麼,只要用戶已經允許這樣做,換句話說,如果用戶已經接受/允許您的應用程序,您就可以獲得有關用戶的信息。 – jamietelin 2010-12-15 13:01:48

+0

感謝您的幫助。我用另一種方式解決了問題,並在這裏發佈了答案。歡呼聲 – Andre 2010-12-16 14:39:19

0
$json = file_get_contents("http://graph.facebook.com/$uid"); 
$fdata = json_decode($json); 
$fname = $fdata->name; 
echo 'Merry Christmas x ' . $fname . ' x '; 
相關問題