Facebook发送对话框,API错误代码为100(';链接无效)

Facebook发送对话框,API错误代码为100(';链接无效),facebook,Facebook,我想让用户能够通过我们的应用程序(Exvo),通过Facebook向邀请页面发送URL,将钱发送给他们的Facebook好友 我正在使用“发送”Facebook对话框(重定向到Facebook网站)。我将用户重定向到的确切url是(to字段已被编辑): 这给了我一个Facebook“发送”对话框。当我键入自定义消息并按“发送”时,会出现以下错误: API Error Code: 100 API Error Description: Invalid parameter Error Message

我想让用户能够通过我们的应用程序(Exvo),通过Facebook向邀请页面发送URL,将钱发送给他们的Facebook好友

我正在使用“发送”Facebook对话框(重定向到Facebook网站)。我将用户重定向到的确切url是(
to
字段已被编辑):

这给了我一个Facebook“发送”对话框。当我键入自定义消息并按“发送”时,会出现以下错误:

API Error Code: 100
API Error Description: Invalid parameter
Error Message: 'link' is invalid.
链接参数(从上述URL中提取并解码)如下所示:

这是一个有效的URL,返回正确的200响应。使用Facebook调试器,我可以看到提供的URL不会生成任何错误:

只有关于推断属性的警告(我也在某一点上添加了这些警告,但没有帮助)

还要注意的是,偶尔(比如10分之一),当我单击“发送”时,消息会被传递出去,我没有看到任何错误,这使得它更加奇怪


为什么会发生这种错误?我做错了什么?

我发现了一些奇怪的事情,今天在我管理的网站上也发生了同样的事情,问题似乎是链接中包含了facebook这个词,所以尝试从你的url中删除[facebook、fb或f如果是一个完整的词],应该可以,我有一个像
open/ID/facebook/
这样的url,当我把它改成
fopen/ID/
时,它唯一的工作方式就是这样,这看起来很愚蠢

因此,在您的情况下,这就是问题所在:
https://www.exvo.com/invitations/9
fb
77BDA665F0AE8F588443DAEC80A29B


尝试将您的url更改为没有fb或facebook或任何类似内容的内容。

我仅在使用“发送”对话框时遇到此问题。我在一个公共URL上使用动态查询字符串参数。通用URL已被Facebook刮取,但如果Facebook之前未刮取该确切URL,则公共URL查询字符串参数的每次迭代都会导致此错误

我修复了这个问题,在我尝试通过FB UI发送对话框发送URL之前,我强迫Facebook删除URL。使用FB API点击
graph.facebook.com
,在
id
参数中发布URL,并将
scrape
参数设置为
true

像这样:

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]'
    });
});

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

执行以下操作可以为我解决问题:

  • 较短的
    标记
    (链接参数中的该字符串:
    9fb77bda665f0ae8f58843daec80a29b
    ,长度为32个字符,现在为16)如
  • 接受,这要求我在页面中引入OpenGraph标记,并删除在构建发送对话框重定向uri时包含的
    name
    description
    picture\u uri
    参数

现在,Facebook在向用户显示“发送”对话框之前,必须先获取我的页面,以检索向用户显示正确对话框所需的数据(从OG:
标题
说明
图像
)。我认为这对我的情况帮助最大。

在你的情况下,这可能不是问题,但只是为了发现:确保你共享的URL在internet上是公开的(即不在防火墙内或本地计算机上)。FB需要访问您的URL以验证其真实性。

就像mpcabd在上面指出的那样,确保删除URL中带有FB、fbdev、facebook的任何内容,因为当我这样做时,它为我解决了问题。这可能是Facebook的一个bug或安全措施。您总是需要通过链接传递重定向uri,并尝试提及标题

此外,您的链接和重定向uri必须位于您为应用程序提供的域内。Ex:如果你的应用程序域中的应用程序设置为,你不能共享像say这样的链接,而是必须共享为我工作的链接

echo”“


您也可以为某些内容分配
$title

谢谢您的回答,但不幸的是,答案不是这样。我把它改成了完全不同的东西(但是把域名留在那里),它仍然导致了可怕的100错误。我也有同样的问题——我想问题可能是我的链接回到了他们发布的同一个画布URL,但改变这一点似乎没有什么不同。今天早些时候,事情进展顺利,但最后一个小时已经中断(例如,我甚至无法链接到yahoo.com)。我怀疑这可能只是“一些代码被破坏了,没有人知道或关心它那么多”/我想我已经解决了这个问题-我有一个像你一样的URL:foo.com/path/to/code/id/6/rand/ab2e9c8dfb27385我添加了rand部分作为缓存buster,显然它不喜欢那些很长的id字符串。摆脱这些似乎有帮助,因为事情正在进行。我检查过的其他东西——og。根据facebook调试器的meta标记-URL,我确保没有重定向。我添加了缺少的字段(图像、描述等)。这些只是“警告”,但完成所有的警告并丢失长字符串给了我一个有效的“发送”。祝你好运但是meta标签对我不起作用。仍然反映了同样的问题。请告诉我这暗示了我正确的答案。我不得不在我的链接中将https改为http,因为我还没有在我的网站上设置https,所以facebook可能无法验证。
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]'
    });
});