带有API的Facebook发送对话框错误代码:100('链接'无效)

Paw*_*cki 5 facebook

我想通过我们的应用程序(Exvo)向用户提供通过Facebook向邀请页面发送URL的方式向他们的Facebook朋友汇款的能力.

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

https://www.facebook.com/dialog/send?app_id=637466739616439&description=You+can+create+an+Exvo+Account+to+accept+this+money+transfer.&display=page&link=https%3A%2F% 2Fwww.exvo.com%2Finvitations%2F9fb77bda665f0ae8f58843daec80a29b&名称= Pawe%C5%82 +转到%C5%9Bcicki +会+喜欢+到+送+你+ 0.01 + EUR&图片= HTTPS%3A%2F%2Fthemes.exvo.com%2Fstylesheets% 2Fimages%2Fcustom_images%2Flogo.png&REDIRECT_URI = HTTPS%3A%2F%2Fwww.exvo.com&到=用户名

这给我提供了一个Facebook'发送'对话框.当我输入自定义消息并按"发送"时,我出现此错误:

API Error Code: 100
API Error Description: Invalid parameter
Error Message: 'link' is invalid.
Run Code Online (Sandbox Code Playgroud)

链接参数(从上面的URL中提取并解码)是这样的:

https://www.exvo.com/invitations/9fb77bda665f0ae8f58843daec80a29b
Run Code Online (Sandbox Code Playgroud)

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

https://developers.facebook.com/tools/debug/og/object?q=https%3A%2F%2Fwww.exvo.com%2Finvitations%2F9fb77bda665f0ae8f58843daec80a29b

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

还要注意,偶尔(比如十分之一),当我点击"发送"时,消息就会通过,我看不到任何错误,这使得它更加怪异.

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

jso*_*soc 8

这可能不是您的问题,但仅仅是因为可发现性:确保您共享的URL在Internet上公开可用(即不在防火墙内或本地计算机上).FB需要访问您的URL以验证其真实性.


Paw*_*cki 0

执行以下操作为我解决了这个问题:

  • 根据gkimsal的建议,较短token(参数中的该字符串link9fb77bda665f0ae8f58843daec80a29b原本有 32 个字符长,现在为 16 个字符)
  • 接受2013 年 10 月的重大更改,这要求我将 OpenGraph 标签引入页面并放置namedescription以及picture_uri我在构建发送对话框重定向 uri 时包含的参数

现在,Facebook 在向用户显示“发送”对话框之前,必须事先获取我的页面以检索向用户显示正确对话框所需的数据(来自 OG title:description和)。image我认为这对我来说是最有帮助的。