网页中的喜欢和分享按钮会导致javascript警告和php错误

时间:2013-11-09 07:17:55

标签: facebook facebook-graph-api facebook-like facebook-javascript-sdk share

我使用直接从Facebook Developers页面复制的代码,在网页上添加了基本的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错误(如.php.1:948):

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

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

    • fb:admins和fb:app_id标签丢失。
    • og:title,og:type,和og:image is missing。
    • og:url,go:title,go:description,and go:应明确提供图片属性
  4. 好的,好的。但是我应该在哪里以及如何添加这些?我查看了Facebook文档并搜索了stackoverflow,但没有成功。如果这些应该被添加到div标签中的data-href字符串中,请举个例子。

4 个答案:

答案 0 :(得分:11)

我收到了你在第一期中提到的相同的javascript警告,并在facebook代码中的URL中添加了appId参数,解决了这两个问题。所以只需改变这一行:

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

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

要获得Facebook appId,请访问: https://developers.facebook.com/apps

答案 1 :(得分:2)

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

但如果这对某人有帮助,那么在调用FB.init()“ - &gt; https://stackoverflow.com/a/16593474

之前,这个答案有助于调用”FB.getLoginStatus()“。

答案 2 :(得分: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

答案 3 :(得分: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应用于你的代码......(js.src =“// connect.facebook.net/en_US/all.js#xfbml=1&appId=16digIdHere”;)