3

我刚刚开始制作一个托管在 heroku 上的新 Facebook 应用程序,我还没有做任何更改,但对功能进行了一些测试,以习惯这些东西的工作方式。一切都很好,直到我尝试“发送消息按钮”,出现一个对话框,其中包含以下错误日志:

An error occurred. Please try later

API Error Code: 100
API Error Description: Invalid parameter
Error Message: 'link' is invalid.

我查看了一些相关的代码,并没有发现任何问题,但是我很新,所以也许你们中的任何人都可以帮助我找出问题所在:

    $('#sendToFriends').click(function() {
          FB.ui(
            {
              method : 'send',
              link   : $(this).attr('data-url')
            },
            function (response) {
              // If response is null the user canceled the dialog
              if (response != null) {
                logResponse(response);
              }
            }
          );
        });

我认为没有问题的原因$(this).attr('data-url');是以下工作(发布到墙上按钮):

 $('#postToWall').click(function() {
      FB.ui(
        {
          method : 'feed',
          link   : $(this).attr('data-url')
        },
        function (response) {
          // If response is null the user canceled the dialog
          if (response != null) {
            logResponse(response);
          }
        }
      );
    });

  }

获取值的getUrl()函数是:

 public static function getUrl($path = '/') {
if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1)
  || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
) {
  $protocol = 'https://';
}
else {
  $protocol = 'http://';
}

return $protocol . $_SERVER['HTTP_HOST'] . $path;

}

谁能帮帮我吗?我在 facebook 开发者论坛和 stackoverflow 上进行了一些搜索,但是虽然错误代码相同,但错误消息却不同。我认为这个问题来自facebook,因为方法feed有效,而方法send无效。这两种方法都在 facebook sdk 中定义

注意:我使用的是最新的 php sdk

4

1 回答 1

2

我只使用发送对话框遇到了这个问题。提要发布工作正常,这很奇怪。我在公共 URL 上使用动态查询字符串参数。

我通过强制 Facebook在尝试通过 FB UI 发送对话框发送URL之前抓取 URL 来解决此问题。使用 FB API 来点击参数graph.facebook.com中发布的 URL,并将参数设置为.idscrapetrue

像这样:

FB.api('https://graph.facebook.com/', 'post', {
    id: '[URL]',
    scrape: true
}, function(response) {
    FB.ui({
        method: 'send',
        name: '[name]',
        picture: '[Picture URL]',
        link: '[URL]',
        description: '[description]'
    });
});

我也在这里用这个解决方案回答了同样的问题。

于 2013-08-14T13:02:54.517 回答