2017-05-02 2 views
0

enter image description here(Googleカレンダー)私は私の良い は今、私はリフレッシュトークンを取得するために管理し、多くの時間を無駄日間過去に

..私はトークンの前にリフレッシュを取得できませんでした..

私の目的は私がそうすることをやったユーザー

のGoogleのログインせずにGoogleカレンダーのデータを同期させることである。

  1. 私は、トークンinformatを保存します私のデータベース内のイオン
  2. ユーザーが同期したい場合、私はGoogleカレンダーのAPI からデータを取得するために保存された情報を使用しますが、その後のトークンは、私は、私はリフレッシュを使用して、使用可能なトークンを取得することができます仮定時間
  3. で有効期限を、持っていますトークンを取得し、GoogleカレンダーのAPIから再度データを取得します(ただし、どのようにですか? )

追加質問:以前の更新トークンから別の更新トークンを取得できますか?私はリフレッシュトークンを何度も何度もやり直すことができるのでしょうか?

public function __construct() 
{ 
    $client = new Google_Client(); 
    $client->setAuthConfig('client_secret.json'); 
    $client->addScope(Google_Service_Calendar::CALENDAR); // CALENDAR READONLY 는 읽기만 가능 
    $guzzleClient = new \GuzzleHttp\Client(array('curl' => array(CURLOPT_SSL_VERIFYPEER => false))); 
    $client->setHttpClient($guzzleClient); 
    $client->setAccessType ("offline"); 
    $client->setApprovalPrompt ("force"); 
    $client->setRedirectUri('http://localhost/smart_mirror/GoogleCalendarApi-master/public/api/cal'); 
    $this->client = $client; 
} 


$refresh_token=$this->client->fetchAccessTokenWithRefreshToken($this->client->getRefreshToken()); 
$this->client->getAuth()->refreshToken($this->client->getAuth()->getRefreshToken()); 
$refresh_token=$this->client->getAccessToken(); 

答えて

0

アクセストークンは寿命が限られている:

はここにいくつか私のコードです。アプリケーションが単一のアクセストークンの有効期間を超えて にアクセスする必要がある場合は、 更新トークンを取得できます。リフレッシュトークンを使用すると、新しいアクセストークンを に取得できます。

注:リフレッシュトークンを安全な長期保存で保存し、有効なままである限り、 を使用してください。制限は、クライアントとユーザーの組み合わせごとに発行される 更新トークンの数に適用され、すべてのクライアントにわたって ユーザーに適用されます。これらの制限は異なります。 アプリケーションが十分なリフレッシュトークンを要求して のいずれかの制限を超えると、古いリフレッシュトークンが機能しなくなります。

Refreshing an access token (offline access)

アプリケーションは、GoogleのAPIへのオフラインアクセスを必要とする場合は、オフラインにAPIクライアントのアクセスタイプを設定します。

$client->setAccessType("offline"); 

ここSO postは、追加のサンプルです。

関連する問題