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

发布于 2024-10-08 01:54:00 字数 756 浏览 4 评论 0原文

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

这个想法是:

如果用户喜欢页面>说:“名字圣诞快乐” 如果用户不喜欢该页面>显示通用消息

我认为我能够让用户的第一个名称显示出来,因为我不想存储任何内容,但到目前为止没有成功。

我的代码是:

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;

但它所回应的是:“圣诞快乐 xx 106998XX369535

其中数字是页面的 id,而不是用户的 id。

有没有办法在不征求用户许可的情况下做到这一点?

I have a fan page on Facebook and I'd like to show a christmas message to the people who like the page.

The idea is:

If user likes page > say: "Merry Christmas first_name"
if user doesn't like the page > show generic message

I thought I'd be able to get the user's 1st name to display just that, since I don't want to store anything, but so far no success.

My code is:

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;

But all it echoes is: "Merry Christmas x x 106998XX369535"

Where the number is the page's id, not the user's id.

Is there any way to do this without asking the user's permission?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

∞觅青森が 2024-10-15 01:54:00

除非用户授予许可,否则您无法获取有关该用户的任何信息。很遗憾。

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

但用户仍然需要授权您的申请。

You cannot get any information about the user unless the user gives permission. Unfortunately.

But with "OAuth 2.0 for Canvas" you do receive a the signed_request POST. And this way is the only way to go about it; http://developers.facebook.com/docs/authentication/canvas

But user still needs to authorize your application.

笑忘罢 2024-10-15 01:54:00

我已经找到答案了。

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

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

写作:

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

将显示:

Merry Christmas John Smith

如果 John Smith 正在查看它:)

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

I've found the answer.

Just use: to show the user's name on a TAB/Canvas app.

It also works within the Static FBML app.

Writing:

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

Will show:

Merry Christmas John Smith

if John Smith is viewing it :)

The name will be formatted as a link, but you can style it with CSS.

一桥轻雨一伞开 2024-10-15 01:54:00
$json  = file_get_contents("http://graph.facebook.com/$uid");
$fdata = json_decode($json);
$fname = $fdata->name;
echo 'Merry Christmas x ' . $fname . ' x '; 
$json  = file_get_contents("http://graph.facebook.com/$uid");
$fdata = json_decode($json);
$fname = $fdata->name;
echo 'Merry Christmas x ' . $fname . ' x '; 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文