Facebook SDK PHP登录"错误请求"

时间:2016-05-01 18:55:09

标签: php facebook facebook-graph-api facebook-php-sdk codeigniter-3

我正在尝试使用PHP创建FB登录。 我的应用程序的URL是:http:// example.com。 重定向网址为http:// example.com/login/facebook /

这是我在http:// example.com中创建登录网址的代码:

    $fb = new \Facebook\Facebook([
        'app_id'     => FB_APP_ID,
        'app_secret' => FB_APP_SECRET,
        'default_graph_version' => 'v2.2',
    ]);

    $callback = 'http:// example.com/login/facebook/';
    $helper = $fb->getRedirectLoginHelper();
    $permissions = ['email'];
    $data['fb_url'] = $helper->getLoginUrl($callback, $permissions);

我获取了一个URL并将其设置为用户可以单击并登录的链接。

这是重定向网址(http:// example.com/login/facebook /)中的代码:

    $fb = new Facebook\Facebook([
        'app_id' => FB_APP_ID, // Replace {app-id} with your app id
        'app_secret' => FB_APP_SECRET,
        'default_graph_version' => 'v2.2',
    ]);

    $helper = $fb->getRedirectLoginHelper();

    try {
        $accessToken = $helper->getAccessToken();
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        // When Graph returns an error
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        // When validation fails or other local issues
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }

    if (! isset($accessToken)) {
        if ($helper->getError()) {
            header('HTTP/1.0 401 Unauthorized');
            echo "Error: " . $helper->getError() . "\n";
            echo "Error Code: " . $helper->getErrorCode() . "\n";
            echo "Error Reason: " . $helper->getErrorReason() . "\n";
            echo "Error Description: " . $helper->getErrorDescription() . "\n";
        } else {
            header('HTTP/1.0 400 Bad Request');
            echo 'Bad request';
        }
        exit;
    }

代码来自此处的示例 - FB SDK DOCS, 但是我得到了这个错误:

  

错误请求

并且访问令牌= NULL。 错误在哪里以及如何修复?

1 个答案:

答案 0 :(得分:0)

我猜是因为在重定向页面中无法访问GET参数代码和状态。尝试在重定向页面中执行$ _GET的var_dump,看看它们是否存在。