2017-03-04 4 views
1

ユーザーのGoogleカレンダーにアクセスするためのアクセス許可が必要なアプリケーションで作業しています。私はPHPクライアントを使用しており、これらのカレンダーにオフラインでアクセスできます。私の問題は以下の通りです:許可が得られたら、後で特定のユーザーのカレンダーにアクセスするにはどうしたらいいですか?特定のユーザー(自分のカレンダーにアクセスする権限をすでに与えている)のクライアントオブジェクトを、必要なときに作成するにはどうすればよいですか?Google APIオフラインでユーザーデータにアクセスする

Google_Service_Oauth2::USERINFO_EMAILスコープを使用してクライアントIDを抽出できましたが、後でそのユーザーのカレンダーを取得するにはどのように使用できますか?それは私がそれについてどうやってすべきか、あるいは間違った方向に向かうことさえあるのだろうか?

答えて

1

これを達成するには、いくつかの方法があります。あなたの場合、ユーザーカレンダーにのみアクセスしたいので、要求に含めるスコープはhereです。クライアントの設定には$client->setAccessType("offline");$client->setApprovalPrompt("force");

が必要です。アクセスを許可すると、アクセストークンと交換できるアクセスコードが返されます。返されたアクセストークンは、データベースに保存する必要があります。後で、ユーザーがカレンダーサービスを使用する必要がある場合は、単に保存したアクセストークンを使用するだけです。

コードの詳細が必要な場合は、実装を見ないと実現しようとしていることを完全に理解できないため、コードの詳細を投稿してください。

たとえば、次のコードスニペットを参照してください。

/* 
* @$accessToken - json encoded array (access token saved to database) 
*/ 

$client = new Google_Client(); 
$client->setAuthConfig("client_secret.json"); 
$client->addScope("https://www.googleapis.com/auth/calendar"); 

$_SESSION["access_token"] = json_decode($accessToken, true); 

$client->setAccessToken($_SESSION['access_token']); 
$service = new Google_Service_Calendar($client); 

//REST OF THE PROCESS HERE 
+0

こんにちは@Morfinismo、あなたの助けをありがとう!後でユーザーカレンダーにアクセスするためにトークンを使用する方法のコード例を表示できますか?私はそれを把握していないようだ。 – Cellydy

+0

@Cellydy私は答えを更新しました。助けてください。私たちがあなたに何をしているのかを示してください。 – Morfinismo

関連する問題