2012-08-08 120 views
-1

我创建了一个应用程序(在页面标签中)。 现在我检查,如果应用程序拥有所有权限,如果不是我问他们:Facebook SDK - 权限请求后重定向

//$app_url = Url to Page Tab 
'<script>top.location.href = "'.$facebook->getLoginUrl('next' => $app_url, 'scope' => $scope).'";</script>' 

现在我想,它要求的权限后重定向到页面标签(应用程序),但它总是重定向到我的域名。

尝试使用'redirect_uri',但引发错误(过时),并与'下一个'。

任何想法,除了在用户在Facebook上检查APP吗?

ps。找不到最新的解决方案。

编辑: 刚看到时,我尝试将应用程序作为显示以下错误管理: API错误代码:191 API错误描述:指定的URL不会被应用

+0

我认为你必须检查用户已经验证了你的应用程序,并在应用程序本身的Facebook上,否则你无法进行API调用。 – Sammaye 2012-08-08 09:00:59

+0

您的$ app_url是您网站的网址还是Facebook上的标签?例如facebook.com/page/app另外,你应该尝试传递一个数组到getLoginUrl,就像getLoginUrl(array('next'=> $ app_url,'scope'=> $ scope));因为这是它期望的https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/ – TommyBs 2012-08-08 09:30:08

+0

嘿,它传递一个数组,只是简单的发布代码。 $ app_url包含到facebook页面/ app(facebook.com/page/app)的链接。 我还在第一篇文章中添加了一个错误代码。 – Mek 2012-08-08 09:40:02

回答

1

拥有对重定向您的应用程序选项卡,如果您使用PHP的Facebook SDK,你可以这样做:

$signedRequest = $facebook->getSignedRequest(); 
if(!empty($signedRequest) && !empty($signedRequest['page']['id'])){ 
    $page = $facebook->api($signedRequest['page']); 
} 

$redirect_uri = $page['link'] . '?sk=app_' . $facebook->getAppId(); 

$loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'publish_actions', 
    'redirect_uri' => $redirect_uri 
)); 

,然后在你的HTML你就把:

<script>top.location.href = "<?php echo $loginUrl; ?>";</script> 

此外,在您的APP配置中,您必须指出(页面选项卡URL &安全页面选项卡URL)到您的域和文件夹,您的应用程序在哪里。