Facebook PHP SDK - 例外 - 提供访问令牌

时间:2016-09-08 20:55:15

标签: php facebook-sdk-4.0

我正在尝试在此网站上添加“使用Facebook登录”选项。 我在这里附上了两个相关的代码片段;我的大部分代码都来自Facebook开发者页面。

  1. Javascript函数 - 与存储cookie的FB-SDK一起使用。

    logInWithFacebook = function() {
        FB.login(function(response) {
            if (response.authResponse) {      
                $.ajax({
                    url: "addUser.php",               
                    type: "post",
                    success : function() {
                        redirectTo('dashboard.php');
                },
                error : function() {
                }
        });
    }
    
  2. PHP脚本 - 获取访问令牌并获得响应。

    <?php
        session_start();
        require_once __DIR__ . '/vendor/autoload.php';
        $fb = new Facebook\Facebook([
            'app_id' => '<entered app id>',
            'app_secret' => '<and secret key>',
            'default_graph_version' => 'v2.2',
        ]);
        $helper = $fb->getJavaScriptHelper();
        try {
            $accessToken = $helper->getAccessToken();
            // echo $accessToken;
            // Line - 1
            $response = $fb->get('/me?fields=id,name,email',$accessToken);
        }
    // CATCHING EXCEPTIONS FOLLOWED BY MORE CODE
    
  3. 问题是此代码在我的localhost中按要求运行。但是,当我将它添加到服务器时,我每次都会获得以下捕获的异常。

      

    Facebook SDK返回错误:您必须提供访问令牌。

    此外,在回显脚本中的accessToken时,我获得了与在localhost中回显时相同的长字符串。所以我猜这意味着cookie正确存储并且访问令牌可用。

    由于代码在本地主机中运行良好,我不知道如何继续进行调试。

    我也尝试了这一点,将// Line - 1替换为$helper->getAccessToken()。在那种情况下,我得到了这个。

      

    图形错误:已使用此授权码

    1. 有什么可能的原因,如果发生这样的事情?哪些东西在本地工作,但在网上工作。
    2. 我们如何解决这个问题?
    3. 我当前代码中的任何错误或我当前问题的可能解决方案?我几乎可以肯定它是非常愚蠢或基本的东西,但我无法弄明白。

0 个答案:

没有答案