0

我是谷歌客户端身份验证的新手。我正在尝试使用从这里下载的这个 php google 客户端将文件上传到我的 google 驱动器https://github.com/google/google-api-php-client

public function oauth2callback(){
        set_include_path(get_include_path() . PATH_SEPARATOR . ROOT .DS. "vendors");
        require_once 'Google/Client.php';
        $client = new Google_Client();

        $client->setClientId('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
        $client->setClientSecret('xxxxxxxxxxxxxxxxx');
        $client->setRedirectUri('http://example.com/auth/oauth2callback');
        $client->setScopes(array('https://www.googleapis.com/auth/drive'));
        $client->setState('offline');
        $authUrl = $client->createAuthUrl();
        if (isset($_GET['code'])) {
                $authCode = trim($_GET['code']); 
                $accessToken = $client->authenticate($authCode);
                print_r($accessToken);
                $client->setAccessToken($accessToken);
        }
        if ($client->getAccessToken()) {
            // To do
        }else{
            $authUrl = $client->createAuthUrl();
            echo "<a href='$authUrl'>Login Now</a>";
        }
    }

在回复中,我只收到这个

{"access_token":"ya29.eQAeXvi4c5CAGRwAAAAKr55Tljr6z_GpdfjyY0xbrD15XGikNRL-D724Hx1L_g","token_type":"Bearer","expires_in":3600,"created":1410085058}

没有任何刷新令牌。

我只想从响应中获取刷新令牌以供以后使用。

我也关注了这个问题

将状态设置为离线,撤销之前属于此应用的所有访问权限,甚至尝试使用全新的新帐户/应用......但从未收到刷新令牌......

请大家帮帮我...

4

1 回答 1

1

我错过了 access_type=offline..

所以,添加

$client->setAccessType('offline');

解决了这个问题。

于 2014-09-07T11:48:38.443 回答