我没有什么问题。当我需要我的应用程序要求用户授予应用程序权限时,我使用以下代码:
<?php
$loginUrl = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'scope' => 'email,publish_stream,offline_access',
));
?>
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
我工作正常,但在用户按下"授予权限"后,他会重定向到我的应用程序URL。我的意思是http://mydomain.com/myapp/直接,而不是我在Facebook上的应用程序页面。我可以绕过它——我知道我的应用程序的Facebook地址,所以我把他重定向到合适的位置http://apps.facebook.com/myappname.它也可以工作。但是,当有人在某个页面选项卡上添加我的应用程序时,问题就出现在这里了。因为我不知道在哪里重定向用户了——我不知道我的应用程序是从哪个页面调用的。
有没有办法从我的应用程序被称为哪个页面了解我的应用,或者,更好的是,让Facebook正确地将用户重定向到"Facebook页面",在"授予权限"对话框后添加应用程序选项卡?
您可以这样设置redirect_uri
:
<?php
$loginUrl = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'scope' => 'email,publish_stream,offline_access',
'redirect_uri' => 'http://yourdomain.com/app', //the url to go to after a successful login
));
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
?>
似乎你唯一能做的就是检测用户是否在facebook之外查看你的页面,然后将他们重定向到你的facebook应用程序页面。