【发布时间】:2014-07-16 14:54:13
【问题描述】:
我正在用 php 在 Facebook 中开发 Canvas 应用程序。当用户允许权限时,它会被重定向到我的网站,如帮助页面https://developers.facebook.com/docs/reference/dialogs/oauth/ 中所述。
但我不想被重定向到我的网站,我想被重定向到在 iframe 中包含我的网站的 facebook 页面。我怎样才能做到这一点?应该很直接。
If the user clicks "Allow", they will be directed to
http://www.example.com/response#access_token=...& expires_in=3600
If the user clicks "Don't Allow", they will be directed to
http://www.example.com/response?
error=access_denied&
error_description=The+user+denied+your+request.
我不想访问 example.com,而是访问包含 example.com 的 facebook.com/app/ID_APP
编辑:
在 Floyd Wilburn 的回答之后,我尝试放置我的应用页面,但它不起作用。它给了我一个错误。虽然正确的 URL 看起来像这样
(我们可以看到我的网站 url example.com 使用参数“next_url”编码,用户将从我的网站页面重定向到该参数)
错误方式的 URL 看起来像这样(只需将我的网站更改为我的 facebook 应用程序 url)
所以我的解决方案就是我评论的。用户访问我的网站并被重定向到 facebook 应用 URL。
谁能猜到为什么 Floyd Wilburn 的解决方案对我不起作用?
谢谢
【问题讨论】:
-
看你上面的url,我想我的答案可能不是很清楚——'yourapp'部分不是app_id,它是画布页面名称(应用命名空间设置)。
-
您设置“apps.facebook.com/pagename/hello.php”的重定向的问题是您缺少对您的应用程序的引用,通常是
http://apps.facebook.com/pages/yourpage/?sk=app_[your app id]- 这将加载您作为画布网址放置的任何内容. Canvas url 是您自己网站上的目录(不在 fb 上)。因此,如果我将它托管在 /var/www/html/myapp 中,我会期望返回的经过身份验证的用户通过 myapp/index.php 来。
标签: php facebook redirect oauth