我是否需要一个适用于Facebook Like按钮的XFBML版本的appId?

时间:2011-04-07 00:14:28

标签: facebook sdk facebook-like xfbml app-id

我真的很困惑。

我正在尝试使用我网站上一些非常简单的Facebook插件,特别是基本的“赞”按钮。

我已经知道如何将限量版与iFrame一起使用。

然而,现在我正在试图弄清楚XFBML方法,在线文档似乎对你已经知道的内容做了很多假设,并且在工作示例上做得很短。例如,它们向您展示如何调用JavaScript Init并为您提供元素fb的单行HTML代码:like ...但是我看不到任何关于如何显示/隐藏面,设置默认字体等的示例就像在iFrame代码中一样。

我已经发现你需要将它们作为属性添加到元素中,但这要归功于StackOverlfow,并且不用感谢Facebook文档,它只是让你圈起来。

<fb:like href="http://mydomain.com" show_faces="true" action="recommend" colorscheme="light" width="400" height="35" />

好的,现在使用XFBML代码时,它的高度应该根据登录情况自动扩展/收缩,或者不是我假设。

我不知道我是否应该将高度设置为“80”或者是否自动发生。

我不知道我应该在Init脚本中使用“你的app id”。没有应用程序...只是一个Facebook公司页面...所以当我在网站上放一个Like按钮时,为什么我需要一个App ID?

<script>
window.fbAsyncInit = function() {
  FB.init({
    appId: 'your app id',
    status: true,
    cookie: true,
    xfbml: true
  });
};

对这些问题的任何启示都将不胜感激。

感谢 - 你!

3 个答案:

答案 0 :(得分:16)

在拔掉我所有的头发之后回答我自己的问题......

http://developers.facebook.com/docs/guides/web/

“JavaScript SDK要求您使用Facebook注册您的网站以获取应用ID (或appId).appId是您网站的唯一标识符,可确保我们拥有用户和您的网站之间的适当安全级别。以下示例显示了在您拥有appId后如何加载JavaScript SDK:“

http://developers.facebook.com/setup/

该页面/表单的标题是创建应用。我仍然不明白他们为什么不使用更通用的术语。我不是“创建应用程序”,我不认为我的网站是一个应用程序。

答案 1 :(得分:1)

我没有appId,只是从like code generator得到了这个代码,它似乎在我的本地环境中工作(使用localhost:8000但仍有136个喜欢)。当我按下按钮时,我按预期获得了facebook登录弹出窗口。

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<fb:like href="url here (optional)" send="true" width="450" show_faces="true"></fb:like>

答案 2 :(得分:0)

你可以做......

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" >

...

window.fbAsyncInit = function() {  
FB.init({
  // appId      : 'none', // App ID
  cookie     : true, // enable cookies to allow the server to access the session
  xfbml      : true  // parse XFBML
});

FB.Event.subscribe('edge.create', function(href, widget) {  
            var ss=href;
            if (ss.match(/myWebSite/i)) {
                    alert('You just liked me');
            }
});
};  

(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "https://connect.facebook.net/en_GB/all.js#xfbml=1";
  //js.src = "https://connect.facebook.net/en_GB/all.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

...

<fb:like ref="core" class="fb-like" data-href="http://www.mySite.com" 
data-send="false" data-layout="button_count" 
data-width="50" data-show-faces="false" data-colorscheme="dark"></fb:like>

上述作品,但与你自己一样,并注意到Facebook如何与Facebook注册网站分开真实喜欢(给出一个spash页面,#followers,#talking等),来自它不知道的喜欢的网址。 (该网站至少会获得越来越多的反击)。它有点挫败了被人喜欢的目的。我可能错了,但我认为它甚至不会发布关于后者的消息。

这太糟糕了,因为我的Facebook电话号码用完了:)

然后,至少对我来说,还有一个更大的问题。如果你要奖励某人喜欢你,你不能确定他们这样做,因为这是js。如果您尝试将js重定向到奖励页面,则用户只需剪切该网址即可。你可以设置一个rnd会话var,将它传递给js,并用它将js重定向到一个php页面,但用户也可以想出来。

您似乎无法(或注释掉appId)......

require 'face_sdk/face/src/facebook.php';
$facebook = new Facebook(array(
  'appId' => '',
  'secret' => '',
));
$user = $facebook->getUser();

所以似乎没有直接的PHP方式。我正在玩iframed Like按钮url到php,用simple_html_dom.php解析它,并找到两个主要div中的哪个具有类'hidden_​​elem'。但最终,它只是不值得,因为Facebook会把你视为二等公民。