【问题标题】:"The redirect_uri URL must be absolute" error on Facebook PHP SDKFacebook PHP SDK 上的“redirect_uri URL 必须是绝对的”错误
【发布时间】:2016-10-09 04:41:46
【问题描述】:

编辑:我在基本设置下将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>';

?>

为什么会出现这个错误?

【问题讨论】:

    标签: php facebook facebook-graph-api facebook-php-sdk access-token


    【解决方案1】:

    为什么会出现这个错误?

    因为您在将 URL 传递给 getLoginUrl 方法之前对 URL 进行 URL 编码。

    SDK 会在内部处理该问题 - 因此,现在您的 URL 已被 URL 编码两次,这使得它无法识别为有效的绝对 URL。

    所以只需将 URL 传递给该方法而不应用任何额外的编码。


    编辑:此外,getLoginUrl 方法需要 两个 参数 - 首先是重定向 URI,然后是第二个作为范围的范围 - 而不是都作为 one 数组。

    $loginUrl = $helper->getLoginUrl(
        $redirectURI,
        array('ads_management', 'read_insights')
    );
    

    【讨论】:

    • 我想我明白你的意思,但你能给我一个代码示例,说明这应该是什么而不是我拥有的?
    • 实际上,您的参数不止一个方面是错误的 - 请查看我的编辑。
    【解决方案2】:

    您还需要在 Facebook 应用 (https://developers.facebook.com/apps) 的高级设置中将重定向 URL (http://example.com/login-callback.php) 添加为“有效 OAuth 重定向 URI”。

    【讨论】:

    • 我在任何地方都没有看到这个输入,“有效的 OAuth 重定向 URI”。你具体去哪里编辑这个?
    • 您是否已将您的域添加到应用域列表中?
    • 您是否已将 example.com 添加为 Facebook 应用中的网站平台?
    • 它不会让我添加 example.com/login-callback.php
    • 在“告诉我们您的网站 - 网站 URL:”下选择您的平台,我将其设置为“example.com
    猜你喜欢
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多