12

我使用直接从 Facebook 开发人员页面复制的代码,将基本的 Facebook“赞/分享”按钮添加到网页。代码有两部分:一个ja​​vascript块和一个带有“fb-like”类的div标签继承javascript:

<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>

这是我希望按钮出现的 div 标签:

<div class="fb-like" data-href="http://www.bethcake.com" data-width="90" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div>

以下是我遇到的问题:

  1. 当网页加载时,我收到 2 个 javascript 警告。警告指的是 connect.facebook.net 源代码第 233 行,而不是我编写的任何代码。他们是:

    • 无效的应用程序 ID:必须是表示应用程序 ID 的数字或数字字符串。
    • 在调用 FB.init() 之前调用 FB.getLoginStatus()。
  2. 同样在页面加载时,我得到一个 php 错误(like.php.1:948):

    这个错误令人费解。首先,我没有使用框架。其次,协议确实匹配,这里没有关于端口的内容。当然域不匹配:我不是想为 Facebook 页面收集“喜欢”;我想获得外部网站页面的“赞”。我错过了什么吗?

  3. 我通过 Facebook Open Graph Object Debugger 运行 URL。它带来了一些我不明白的警告。他们是:

    • 缺少 fb:admins 和 fb:app_id 标签。
    • og:title、og:type 和 og:image 缺失。
    • og:url、go:title、go:description 和 go:image 属性应显式提供

好的。但是我应该在哪里以及如何添加这些?我查看了 Facebook 文档并搜索了 stackoverflow,但没有成功。如果这些应该被添加到 div 标签中的 data-href 字符串中,请给我一个例子。

4

4 回答 4

11

I was getting the same javascript warnings as you mention in your first issue and adding an appId parameter to the URL in facebook code resolved both of them. So just change this line:

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";

to

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=1234567891234567";

To get a facebook appId, go to: https://developers.facebook.com/apps

于 2014-01-29T16:27:23.300 回答
2

正如@smohajer 上面指出的那样,您需要添加 appId 但使用新的 SDK 您需要做一些小的更改,否则您会看到一些错误或警告:

js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=1234567891234567&version=v2.2";

您必须在 2015 年 4 月 30 日之前升级: https ://developers.facebook.com/docs/apps/upgrading

于 2015-04-21T15:13:05.673 回答
2

希望你已经解决了这个问题。

但是,如果这对某人有帮助,则此答案有助于在调用 FB.init() 之前调用“FB.getLoginStatus()”-> https://stackoverflow.com/a/16593474

于 2014-01-04T10:08:00.573 回答
0

这对我有用(在这里找到我的答案http://developwithguru.com/solve-invalid-app-id-must-be-a-number-or-numeric-string-representing-the-application-id/

基本上,1)转到开发者页面 2)创建新应用程序 3)获取 id 4)将 id 应用于您的代码..eg(js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId =16digId这里";)

于 2014-12-29T11:49:45.677 回答