我想在用户输入http://apps.facebook.com/myfancyapp时直接显示“请求权限”框。 Facebook Authentication文档非常清楚URL的外观如何
https://graph.facebook.com/oauth/authorize?client_id=[APPID]&redirect_uri=http://www.myfancyapp.com/&scope=user_photos,user_videos,publish_stream
将此URL直接粘贴到浏览器中的工作方式应该如此。我想要的是通过JavaScript(或其他)从应用程序URL重定向用户
http://apps.facebook.com/myfancyapp
到上面的身份验证框网址。
我认为这样的事情会起作用:
<script type="text/javascript">
<!--
window.location = "https://graph.facebook.com/oauth/authorize?client_id=[APPID]&redirect_uri=http://www.myfancyapp.com/&scope=user_photos,user_videos,publish_stream"
//-->
</script>
这会将我重定向到一个看起来像这样的主体的页面
单击图像/测试,然后重定向到身份验证框。
如何直接重定向到“请求权限”框。我知道它的工作原理与其他开发人员(例如Zynga)已经做到了。
答案 0 :(得分:3)
我正在做与提问者相同的事情,而不是window.location,请使用top.location.href =“https:// graph .....”
像:
<script type="text/javascript">
top.location.href = "https://graph.facebook.com/oauth/authorize?client_id=[APPID]&scope=email&redirect_uri=http://apps.facebook.com/myfancyapp/";
</script>
根据需要提示登录,然后提示权限。然后重定向到应用程序。
答案 1 :(得分:1)
使用PHP执行此操作非常简单。
在后端
$facebook = new Facebook( array(
'appId' => '<FB_APP_ID>'
, 'secret' => '<FB_APP_SECRET>'
, 'cookie' => true
));
$fbSession = $facebook->getSession();
if ( !$fbSession )
{
$url = $facebook->getLoginUrl( array(
'canvas' => 1
, 'fbconnect' => 0
, 'display' => 'page'
, 'cancel_url' => null
, 'req_perms' => 'user_photos,user_videos,publish_stream'
) );
}
然后,在前端
<script type="text/javascript">
top.location.href = '<?php echo $url; ?>';
</script>
<p>
Not being redirected? <a href="<?php echo $url; ?>" target="_top">Click Here.</a>
</p>