在Facebook页面选项卡上显示用户名

时间:2010-12-13 18:38:23

标签: facebook facebook-graph-api

我在Facebook上有一个粉丝页面,我想向喜欢该页面的人显示圣诞节信息。

这个想法是:

如果用户喜欢页面>说:“圣诞快乐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。

有没有办法在不征得用户许可的情况下这样做?

感谢您的帮助

3 个答案:

答案 0 :(得分:2)

除非用户授予权限,否则您无法获得有关该用户的任何信息。不幸的是

但是使用“OAvas 2.0 for Canvas”,您会收到signed_request POST。而这种方式是唯一的方法; http://developers.facebook.com/docs/authentication/canvas

但是用户仍需要授权您的应用程序。

答案 1 :(得分:1)

我找到了答案。

只需使用:在TAB / Canvas应用程序上显示用户名。

它也适用于静态FBML应用程序。

写作:

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

将显示:

Merry Christmas John Smith

如果John Smith正在查看它:)

名称将被格式化为链接,但您可以使用CSS设置样式。

答案 2 :(得分:0)

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