簡體   English   中英

Google PHP SDK-未獲取刷新令牌

[英]Google PHP SDK - not getting refresh token

我正在嘗試使用PHP SDK獲得Google API的刷新令牌。 我正在使用Javascript對用戶進行身份驗證,檢索代碼並將其交換為access_token服務器端,但這並沒有授予我訪問令牌。 我究竟做錯了什么? 這是我使用的代碼:

$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->addScope('https://www.googleapis.com/auth/plus.me');
$client->addScope('https://www.google.com/m8/feeds');
$client->setRedirectUri('postmessage');
$client->setAccessType('offline');

if (isset($_REQUEST['code'])) {
    $client->authenticate($_REQUEST['code']);
    if ($client->getAccessToken()) {
        $_SESSION['access_token'] = $client->getAccessToken();
        $token_data = $client->verifyIdToken()->getAttributes();
        $result['data']=$token_data;
        $result['access_token']=json_decode($_SESSION['access_token']);
    }
}

debug($result); //my own function, var_dumps the content of an array

這是數組的結果:

$ result ['access_token']包含:

access_token: 令牌
創建於:1434380576
expires_in:3594
id_token: IDTOKEN
token_type:“承載者”

如果我沒記錯的話,第一個訪問令牌也應該包含刷新令牌,那么我在做什么錯呢?

首先,請檢查Google開發者控制台中的設置,以查看您的RedirectUri是否相同以及API是否已激活(盡管如果您已經擁有該.json,那么我認為是。)

您必須至少經過1次Google Auth提示屏幕,才能在.json中獲取刷新令牌,並且如果RedirectUri沒有幫助您,您將無法獲取刷新令牌甚至驗證訪問權限。

如果您要進行小文件事務並且不需要用戶驗證腳本的過程,則也可以嘗試使用服務帳戶。 祝好運。

問題是我必須指定我要在身份驗證過程中(客戶端)進行脫機訪問... Google API的文檔非常糟糕!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM