facebook发送API错误代码:100 API错误说明:无效参数错误消息:“链接”无效

时间:2013-04-19 08:35:45

标签: facebook send

我正在使用Facebook发布的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'
  });
}

我已经用Google搜索了这一点,我得到的唯一相关信息是Facebook阻止了自己域名的链接以避免垃圾邮件。  因为我将其链接更改为其他实时网站。

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

4 个答案:

答案 0 :(得分:6)

我遇到了类似的问题,并且认为我会在这里分享调查结果。

Facebook文档中描述link参数的唯一信息并不十分有用:

  

链接 - 邮件中发送的网址。

还有一些与此相似/相关的StackOverflow问题:

Facebook API Error 100 - invalid link

  

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

Facebook FB.ui send dialog intermittently returns invalid link error -

  

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

我仍然不知道正是什么构成了有效的link参数,但......

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

  • 必须“完全合格”。 I.E.包含http://https://
  • 必须facebook.com个链接
  • 可能不喜欢重定向(或者你必须偷偷摸摸地使用它们)
  • 支持不在“应用域名”列表中的网址
  • 支持查询字符串
  • 关于动态生成的网页(如this question
  • 可能很挑剔

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

答案 1 :(得分:3)

找到解决方案:

Facebook Send Dialog Error Code: 100 API Error Description: Invalid parameter Error Message: ‘link’ is invalid.


问题原因:

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

问题解决方案:

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

其他锻炼:

缩短网址,但是当Facebook检查提供的网址时,它不起作用。 重定向网址,与上述相同。 在我的情况下,我已经部署了一个额外的HTML页面,用于重定向到Facebook App链接。 请记住,当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>

答案 2 :(得分:0)

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

如果有人遇到类似情况,请查看this solution。希望能帮助一些人。

答案 3 :(得分:-1)

如果出现错误参数且消息显示为&#34; API错误代码:100&#34; - 确保&#34;旁边的框与播放列表共享&#34;在youtube中取消选中,该错误无法显示。