[英]The redirect_uri URL must be absolute Facebook login PHP SDK
[英]“The redirect_uri URL must be absolute” error on Facebook PHP SDK
編輯:我在基本設置下將http://www.example.com
(例如我的實時站點)作為站點 URL 。 我在App Domains下也有www.example.com
和example.com
。
我得到的錯誤是:
redirect_uri URL 必須是絕對的
當我嘗試登錄時,我的代碼中斷了。 這是我的getLoginUrl()
代碼:
<?php
$fb = new Facebook\Facebook([
'app_id' => 'MYAPPID',
'app_secret' => 'MYAPPSECRET',
'default_graph_version' => 'v2.5',
]);
$redirectURI = 'http://example.com/login-callback.php';
$encodedRedirectURI = urlencode($redirectURI);
$helper = $fb->getRedirectLoginHelper();
$loginUrl = $helper->getLoginUrl(
array(
'scope' => 'ads_management,read_insights',
'redirect_uri' => $encodedRedirectURI
)
);
echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
?>
為什么會發生此錯誤?
您還需要添加您的重定向URL( http://example.com/login-callback.php )在你的Facebook應用程序的高級設置“有效的OAuth重定向URI”( https://developers.facebook.com/應用程序)。
為什么會發生此錯誤?
因為您在將 URL 傳遞給getLoginUrl
方法之前對 URL 進行 URL 編碼。
SDK 會在內部處理這個問題 - 所以現在您的 URL 已經被 URL 編碼了兩次,這使得它無法識別為有效的絕對 URL。
因此,只需將 URL 傳遞給該方法,而無需應用任何額外的編碼。
編輯:此外,方法getLoginUrl
需要兩個參數 - 第一個是重定向 URI,然后是第二個參數 - 不是兩個都作為一個數組。
$loginUrl = $helper->getLoginUrl(
$redirectURI,
array('ads_management', 'read_insights')
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.