我知道有一种方法可以在canvas应用程序的iframe中使用javascript将页面重定向到外部url。但是有没有其他方法可以让用户在授权应用程序后立即重定向到外部url .
我知道这是可能的,因为 Facebook 中一个著名的应用程序 klout 就是这样做的。
http://apps.facebook.com/klout__/
重定向到
http://klout.com/一旦用户自动
记得我收到了来自 Facebook 好友的邀请请求。当我单击邀请通知并授权应用程序时,它会重定向到外部 URL。知道这是如何完成的吗?我认为 Facebook 政策也不会鼓励这种做法?
最佳答案
Facebook 希望确保与之交互的服务器与应用设置中设置的域处于同一域。
在 klout 示例中,您给出的操作是添加一个应用程序域,这是在应用程序设置中完成的,但是您可以在其中添加的域是有限的。 例如,如果设置中的站点 URL 设置为“www.example.com”,则您可以将“examlpe.com”或“sub.example.com”添加到应用程序域。 但如果您尝试添加“www.example2.com”,您将得到:
Error
example2.com must be derived from your Site URL or your Mobile Web URL.
编辑
抱歉,我没有正确理解您的意思。
如果您只想将用户重定向到主窗口中的网址,那么您可以使用如下 JavaScript:
top.location.href = "http://www.example.com";
我之前提到的是能够将“www.example.com/”作为网站网址(在设置中),并且仍然使用带有“redirect_uri”等的“sub.example.com”。
第二次编辑
忘记提及这一点: 在 Facebook Platform Policies它指出:
13 . The primary purpose of your Canvas or Page Tab app on Facebook must not be to simply redirect users out of the Facebook experience and onto an external site
因此,您不应将用户重定向出 Facebook。
关于facebook - app.facebook.com/app_name/- 单击 "go to app"后重定向到外部网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232672/