这已经运行了一个多星期。
FB.ui({
method: 'send',
to: connectionid,
name: subject,
picture: staticurl + 'images/logoformysite.png',
link: homeurl + '/' + username + '/something=' + var1 +'&somethingelse=' + encodeURI(var2) + '&evenmore=' + encodeURI(var3),
description: invitemessage,
});
上周我最初遇到了一个错误,如果 URL 在 Facebook 域内,Facebook 会阻止它。我修复了这个问题,现在图片和链接都不属于 Facebook 域,而是来 self 的网站。但这从今天开始发生,没有任何改变。它是间歇性的。
An error occurred. Please try again later.
API Error Code: 100 API Error Description: Invalid parameter Error Message: 'link' is invalid.
目前还不清楚为什么它有时有效而其他时候无效,即使我将它发送给同一个用户。想知道我是否错过了公告。但我希望它至少会一直失败,但事实并非如此。
更新: 我不确定如何在页面上全局设置我在对话框中设置的链接。它会向邮件的收件人发送错误的链接。看看上面的例子如何在新的开放图世界中工作会很有帮助。
2013 年 8 月 12 日回答
问题围绕着我们的 url 是动态的并且每次都需要强制缓存。我现在对“https://developers.facebook.com/tools/debug/og/object”进行 ajax 调用以刷新它,然后启动发送对话框。
最佳答案
我遇到了同样的问题,自上周起就停止工作了。
这是我的解决方案:
转到 Facebook debugger并添加您的网址。 单击“调试”并修复 Facebook 显示的所有警告。
要修复我的问题,我必须在我的页面中添加 og.url
元标记。该值应与您要共享的值完全相同(无重定向)。
然后 Facebook 向我发送了这个通知(警报):
Your app, XXX, is now compliant with the Stream post URL security migration. No further action is required.
尝试再次与 FB.ui
分享您的链接,现在您的帖子应该会自动显示您的 og
值。
注意:
Facebook October breaking change将自动使用那些 og
元数据而不是自定义 FB.ui
参数,因此您现在可以激活重大更改以准备好并从您的代码中删除名称/图片/描述。
更新: 即使我上面提到的正确实现,这个问题也可能再次发生。
如果是您的情况,那是因为您必须强制 Facebook“抓取”您的页面。当您使用 Facebook 对象调试器或在您的时间线/私有(private)消息上复制/粘贴链接时,Facebook 会自动完成此过程。如果您使用 JavaScript SDK,则必须要求 Facebook 索引和缓存您的页面。
你不会在与 JavaScript SDK 相关的 Facebook 文档中找到这个(或者你很幸运)所以为了节省你所有的时间我发现这个令人难以置信的问题(记住 Facebook 只说你的链接无效)你可以在 this page 上找到更多详细信息.
我尝试使用 Graph API 强制我新创建的页面被 Facebook 抓取,如果它对你有用,那你就幸运了。第二种方法没有提到但产生相同的结果是向 Facebook Object Debugger 页面发送请求并在 URL 中添加您的页面链接(例如 https://developers.facebook.com/tools/debug/og/object?q=YourPageUrlHere
).通过这样做,Facebook 这次将抓取您的页面,现在您可以与 Facebook API 共享您的链接,现在一切正常。
关于Facebook FB.ui 发送对话框间歇性地返回无效链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17982183/