【问题标题】:facebook send API Error Code: 100 API Error Description: Invalid parameter Error Message: 'link' is invalidfacebook 发送 API 错误代码:100 API 错误描述:无效参数错误消息:“链接”无效
【发布时间】:2013-04-12 14:32:27
【问题描述】:

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

我已经用 Google 搜索过,我得到的唯一相关信息是 Facebook 正在阻止指向其自己域的链接,以避免垃圾邮件。 当我将链接更改为其他实时站点时,它的工作原理。

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

【问题讨论】:

标签: facebook send


【解决方案1】:

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

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

link - 消息中发送的 URL。

还有其他几个与此类似/相关的 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参数:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      找到解决办法:

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


      问题原因:

      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>
      

      【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-08-09
        • 2013-03-27
        • 1970-01-01
        • 2013-08-03
        • 2018-03-30
        • 1970-01-01
        • 1970-01-01
        • 2012-06-29
        • 2019-02-24
        相关资源
        最近更新 更多