Facebook拒绝访问我的应用程序

时间:2012-05-28 16:28:39

标签: facebook cross-domain facebook-javascript-sdk

我有一个显示共享弹出窗口的应用。 我试图让它从另一台服务器工作时遇到了问题。 我收到以下错误:

  

错误myapp发生错误。请稍后再试。

     

API错误代码:191 API错误说明:指定的URL不是   申请所拥有的   错误消息:redirect_uri不归   申请。

如何让它在所有服务器上运行?不管他们是不是我的? 有什么建议吗?

提前致谢。

注意: 我希望它是通过JS SDK。

1 个答案:

答案 0 :(得分:2)

Facebook应用只能与一个主域合作 主域名来源于开发者应用程序的应用程序设置页面中定义的“站点URL”或“移动Web URL”。

但是,您可以为同一个域添加子域 例如,假设您的“网站网址”为http://app.example.com,您可以通过将其添加到设置页面(基本标签)中的“应用领域”字段来添加您想要用于Facebook的更多子域。 /> 您可以添加以下子域:http://sub1.example.comhttp://example.com

如果您尝试添加不是从中获取的网址,则在尝试保存设置时应收到以下错误消息:

  

错误
  DOMAIN_YOU_ADDED必须来自您的网站网址或移动网站   URL。


修改

如果您想使用FB.ui方法,则会遇到问题 fb sdk只接受来自您自己域的使用,如果您从自己的域加载iframe,那么父窗口(属于另一个域)将无法与该iframe(同一源策略)通信。 / p>

您应该可以使用feed dialog的直接网址:

http://www.facebook.com/dialog/feed?
  app_id=123050457758183&
  link=http://developers.facebook.com/docs/reference/dialogs/&
  picture=http://fbrell.com/f8.jpg&
  name=Facebook%20Dialogs&
  caption=Reference%20Documentation&
  description=Using%20Dialogs%20to%20interact%20with%20users.&
  redirect_uri=http://www.example.com/response

您可以在新窗口/标签中打开它,或者如果是用户点击的操作,则打开弹出窗口。
但是你将无法使用sdk的iframe对话框。