通过PHP SDK的Facebook应用程序-在获得权限后重定向回某人添加我的应用程序的页面


Facebook App via PHP SDK - Redirecting back to page where someone added my app after getting permissions

我没有什么问题。当我需要我的应用程序要求用户授予应用程序权限时,我使用以下代码:

<?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应用程序页面。