2012-08-08 116 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)到您的域和文件夾,您的應用程序在哪裏。