Не удалось получить маркер доступа API для входа в процент * в php? - PullRequest
0 голосов
/ 08 марта 2020

Использование API-интерфейса входа в систему для получения пользовательских данных и его работы нормально, но во время разработки, если я получаю токен доступа много раз, я не могу получить токен доступа, и через некоторое время он снова работает! Почему это происходит? Даже когда я получаю токен доступа, я сохраняю токен в сеансе, и после еще одного сеанса попытки есть, но не могу получить информацию о пользователе? Может ли токен доступа истекает или что происходит?

функция. php

<?php

class PinterestApi 
{
    public function GetAccessToken($client_id, $redirect_uri, $client_secret, $code) {      
        $url = 'https://api.pinterest.com/v1/oauth/token';

        $curlPost = 'client_id='. $client_id . '&redirect_uri=' . $redirect_uri . '&client_secret=' . $client_secret . '&code='. $code . '&grant_type=authorization_code';
        $ch = curl_init();      
        curl_setopt($ch, CURLOPT_URL, $url);        
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, true);       
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);            
        $data = json_decode(curl_exec($ch), true);
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
        curl_close($ch);        
        if($http_code != '200')         
            throw new Exception('Error : Failed to receieve access token');

        return $data['access_token'];   
    }

    public function GetUserProfileInfo($access_token) { 
        $url = 'https://api.pinterest.com/v1/me/?access_token=' . $access_token . '&fields=id,username,first_name,last_name,image'; 

        $ch = curl_init();      
        curl_setopt($ch, CURLOPT_URL, $url);        
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        $data = json_decode(curl_exec($ch), true);
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
        curl_close($ch); 
        if($http_code != 200)
            throw new Exception('Error : Failed to get user information');

        return $data['data'];
    } } ?> 

Не удалось получить токен доступа эта ошибка приходит

обратный вызов. php

<?php
session_start();

require_once('define.php');
require_once('function.php');

if(isset($_GET['code'])) {
    try {
        $pinterest_ob = new PinterestApi();


    $access_token = $pinterest_ob->GetAccessToken(PINTEREST_APPLICATION_ID, PINTEREST_REDIRECT_URI, PINTEREST_APPLICATION_SECRET, $_GET['code']);

                if(isset($access_token)){
                    $_SESSION['access_token'] = $access_token;
                    header("location:mainpage.php");
                }

    }
    catch(Exception $e) {
        echo $e->getMessage();
        exit;
    }
}
?>
...