簡體   English   中英

Facebook PHP SDK 上的“redirect_uri URL 必須是絕對的”錯誤

[英]“The redirect_uri URL must be absolute” error on Facebook PHP SDK

編輯:我在基本設置下將http://www.example.com (例如我的實時站點)作為站點 URL 我在App Domains下也有www.example.comexample.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM