我有一个显示共享弹出窗口的应用程序。尝试让它从不同的服务器工作时,我遇到了一个问题。我收到以下错误:
错误 myapp 出错。请稍后重试。
API 错误代码:191 API 错误说明:指定的 URL 不是 由应用程序
拥有 错误消息:redirect_uri不属于 应用程序。
如何使它能够在所有服务器上工作? 不管它们是否是我的?有什么建议吗?
提前谢谢。
注意:我希望它通过 JS SDK。
Facebook应用程序只能使用一个主域。
主域派生自"站点 URL"或"移动 Web URL",如开发人员应用程序的应用程序设置页面中定义的那样。
但是,您可以为同一域添加子域。
例如,假设您的"网站网址"是http://app.example.com
,您可以通过将更多要与Facebook一起使用的子域添加到设置页面(基本选项卡)中的"应用程序域"字段中来添加这些子域。
您可以添加子域,例如:http://sub1.example.com
或http://example.com
。
如果您尝试添加不是从该网址派生的 url,则在尝试保存设置时应收到以下错误消息:
错误
DOMAIN_YOU_ADDED必须派生自您的网站网址或移动网站 网址。
编辑
如果要使用 FB.ui
方法,则会遇到问题。
fb sdk 将只接受来自您自己的域的使用,如果您从自己的域加载 iframe,则父窗口(属于另一个域)将无法与该 iframe 通信(同源策略)。
您应该能够做的是使用源对话框的直接 url:
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 对话框。