10

我正在使用 facebook post GRAPH UI 发布私人消息,其中包含指向我在 facebook 中的应用程序的链接。早些时候它工作正常,但从最近两天开始,对话框开始抛出错误:

发生错误。请稍后再试。

API 错误代码:100
API 错误描述:无效参数
错误消息:“链接”无效。

发送消息我使用代码:

function sendMessage(id) {
  FB.ui({
    method : 'send',
    name : 'My APP',
    link : 'https://apps.facebook.com/MY_APP/',
    to : id,
    show_error : 'true',
    description : 'my description'
  });
}

我对此进行了谷歌搜索,我得到的唯一相关信息是 Facebook 正在阻止指向其自己域的链接,以避免垃圾邮件。当我将链接更改为其他实时站点时,它的工作。

我需要将链接发送到我的应用程序,因为我必须提供这样的功能。

4

4 回答 4

6

我遇到过类似的问题,并想在这里分享我的调查结果。

Facebook 文档中描述该link参数的唯一信息不是很有帮助:

链接- 在消息中发送的 URL。

还有其他几个与此类似/相关的 StackOverflow 问题:

Facebook API 错误 100 - 无效链接

这个问题最终成为格式错误的picture参数

Facebook FB.ui 发送对话框间歇性地返回无效链接错误-

“问题围绕着我们的 url 是动态的并且每次都需要强制缓存。我现在对“ https://developers.facebook.com/tools/debug/og/object ”进行 ajax 调用以刷新它,然后启动发送对话。”

我仍然不确切知道什么构成有效link参数,但是...

从上述问题和回答中做出一些推论,以及我的一些测试,有效link参数:

  • 必须“完全合格”。IE 包含http://https://
  • 不能是链接_facebook.com
  • 可能不喜欢重定向(或者你必须对它们偷偷摸摸)
  • 支持不在“应用程序域”列表中的URL
  • 支持查询字符串
  • 可能对动态生成的页面很挑剔(如在这个问题中)

显然,Facebook 有某种链接爬取机制,可以对link参数执行一些未知测试以确定其有效性。我只希望他们会选择为我们记录它。

于 2013-08-14T14:19:22.407 回答
3

找到了解决方案:

Facebook 发送对话框错误代码:100 API 错误描述:无效参数错误消息:“链接”无效。


问题原因:

Facebook 不允许使用自己的链接来阻止垃圾邮件。

问题方案:

没有像 Facebook API 那样的解决方案。

其他锻炼:

缩短 URL,但它不适用于 Facebook 检查提供的 URL。重定向 URL,同上。在我的例子中,我部署了一个额外的 HTML 页面,用于重定向到 Facebook 应用程序链接。请记住,当 Facebook 扫描提供的 URL 时,您应该有几秒钟的计时器,因此它无法检测到页面正在重定向到相同的应用程序链接。我为我的 HTML 文件使用了以下代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My Application</title>
</head>
<body>
    <p id="demo"></p>
</body>
<script type="text/javascript">
    var url = "https://apps.facebook.com/MY_APPLICATION_ID";
    var myVar = setInterval(function() {
        myTimer()
    }, 1000);
    var counter = 3;
    function myTimer() {
        if (counter == 0) {
            window.location.replace(url);
            window.clearInterval(myVar);
        }
        document.getElementById("demo").innerHTML = "you will be redirected in "
                + counter + " seconds...";
        counter = counter - 1;
    }
</script>
</html>
于 2013-05-07T15:05:39.580 回答
0

除了我的链接指向我的网站外,我遇到了完全相同的问题。

如果有人处于类似情况,请查看此解决方案。希望这会帮助一些人。

于 2013-08-05T10:07:16.390 回答
-1

如果出现错误参数并且消息显示“API 错误代码:100” - 确保在 youtube 中未选中“与播放列表共享”旁边的框,并且该错误不会显示。

于 2014-09-04T23:15:16.273 回答