Facebook SDK вернул ошибку: Stream вернул пустой ответ в Facebook SDK5 php CodeIgniter 3 - PullRequest
0 голосов
/ 06 января 2019

На прошлой неделе я установил Facebook SDK через composer на CODEIGNITER 3, он работает нормально и возвращает имя, адрес электронной почты и токен до этого дня. Когда я пытаюсь войти в систему, страница загружается в течение 1 минуты, а затем появляется пустая страница с ошибкой:

Пустая ошибка Facebook SDK вернул ошибку:

и вернуть этот URI https://www.mywebsite.com/en/fbcallback?code=AQCCasdfSAD35L-3iABFbT5zntYQ4jJHVcko9ekG-6k-jn5aERodXoasdf7jHWEgSxxqze_K-nyAYSmcASDFaskde6wPasdfD8WHBEFUEO5gNpgLU0RJqnvVGCdYKNfT2Qm5U1pcWCvVE_YkJ6sQyUL0RrcONrqMbb7bpPv0KDUQjaO_XMAwvKEo2Jasdf31PCjxoHBGoogupX8VF5Gx6WaT4b7ZlsYkPhbQPTCdJaWrzwvfJ1So27Wsdt1Ub9WPUO07io3vxmX-P-rmzsxnk3qDSKCPJX9ks0eBtNwXA-83&state=8cbe21da648d832fcd2b34aceb8dfe62#=

я использую 2 действия в моем контроллере для входа в систему:

function fblogin(){

        $fb = new Facebook\Facebook([
              'app_id' => 'my app id ',
              'app_secret' => 'my app secret',
              'default_graph_version' => 'v3.2',
            ]);

       $helper = $fb->getRedirectLoginHelper();
       $permissions = ['email'];
    // For more permissions like user location etc you need to send your application for review
       $loginUrl = $helper->getLoginUrl('https://www.example.com/en/fbcallback', $permissions);
       header("location: ".$loginUrl);
    }

здесь, где должна возвращаться информация о токене:

function fbcallback(){

      $fb = new Facebook\Facebook([
          'app_id' => 'myid',
              'app_secret' => 'myscretapp',
          'default_graph_version' => 'v3.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;
        }


        try {
          // Get the Facebook\GraphNodes\GraphUser object for the current user.
          // If you provided a 'default_access_token', the '{access-token}' is optional.
          $response = $fb->get('/me?fields=id,name,email,first_name,last_name',$accessToken);
         // print_r($response);
        } catch(Facebook\Exceptions\FacebookResponseException $e) {
          // When Graph returns an error
          echo 'ERROR: Graph ' . $e->getMessage();
          exit;
        } catch(Facebook\Exceptions\FacebookSDKException $e) {
          // When validation fails or other local issues
          echo 'ERROR: validation fails ' . $e->getMessage();
          exit;
        }

        // User Information Retrival begins................................................
        $me = $response->getGraphUser();

        echo "First Name: ".$me->getProperty('first_name')."<br>";
        echo "Last Name: ".$me->getProperty('last_name')."<br>";
        echo "Email: ".$me->getProperty('email')."<br>";
        echo "Facebook ID: <a href='https://www.facebook.com/".$me->getProperty('id')."' target='_blank'>".$me->getProperty('id')."</a>"."<br>";
        $profileid = $me->getProperty('id');
        echo "</br><img src='//graph.facebook.com/$profileid/picture?type=large'> ";
        echo "</br></br>Access Token : </br>".$accessToken;


    }

тот же вопрос был задан 2 года назад, но ответов нет: ссылка

1 Ответ

0 голосов
/ 07 января 2019

Моя проблема была на стороне сервера:

Эта функция позволяет указывать определенные IP-адреса или диапазоны IP-адресов, которым вы сможете открывать исходящие соединения.

Просто зайдите на ваш сервер и проверьте, не блокирует ли он исходящие соединения .... Я добавил его в белый список и отлично работает! ... надеюсь, что это может сэкономить ваше время.

...