【发布时间】:2013-06-28 01:01:26
【问题描述】:
我正在尝试制作 Facebook 应用程序,但我无法在画布内的重定向方案中获得授权。
使用 javascript api,我可以很容易地在弹出方案中工作:
$("#loginButton").click(function(e) {
FB.login(function(response) {
if (response.perms) {
perms();
}
}, {perms : 'publish_stream'});
但是弹出窗口应该是不必要的额外点击,因为我看到的每个其他应用程序都在向您显示登录页面之前请求授权。像这样:
我认为他们只是在使用重定向方案。所以我花了一整天的时间尝试我能找到的不同方法:
header("Location: https://graph.facebook.com/oauth/authorize?client_id=" . $gAppId . "&redirect_uri=" . urlencode($gUrl) . "&perms=publish_stream");
header("Location: http://www.facebook.com/login.php?v=1.0&api_key=" . $gApiKey . "&next=" . urlencode($gUrl) . "&canvas=");
header("Location: http://www.facebook.com/connect/uiserver.php?app_id=" . $gAppId . "&next=" . urlencode($gUrl) . "&return_session=0&fbconnect=0&canvas=1&legacy_return=1&method=permissions.request");
但是所有这些都没有显示授权请求的内容,而是显示如下链接:
有趣的是,如果我在新标签页中打开 iframe 的地址,我会得到我想要的授权请求。但我希望它立即显示,无需额外点击,就像其他所有应用一样。
这是一个应用程序示例,它以重定向形式一次性完成授权和请求权限,甚至在显示登录页面之前:
www.facebook.com/send.fortune.cookies
他们做得怎么样?
【问题讨论】:
标签: facebook redirect authorization