我在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。
有没有办法在不征得用户许可的情况下这样做?
感谢您的帮助
答案 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 ';