GoogleCalenderAPIの使用

AWS

AWSの環境をパワーアップ、の手順、のうち、
GoogleCalenderAPIの使用、の記事です。

このサイトでわかりやすく説明されています。
https://himakan.net/websites/how_to_google_oauth

Google認証サイトへの登録

Google認証画面(
https://console.developers.google.com/apis/credentials
)から、新しいプロジェクトを作成

認証情報を作成、OAuthクライアントIDを選択、Webアプリケーションを選択。

承認済みの JavaScript 生成元はWebアプリのURL。

承認済みのリダイレクト URIは、Googleの承認サイトから戻るリダイレクト先を設定しておきます。

クライアントIDとクライアントシークレットをメモしておきます。

処理の流れ

  1. GCAL_GetAuthUrl()で、認証URLを取得
  2. そこへジャンプする。
  3. 下記のようなGoogle認証画面となる。
  4. 認証操作をすると、エンドポイントへ戻ってきて、パラメタにcodeがついてくる。
  5. GCAL_GetTokens($code)で、そのコードをもとに、getAccessTokenでアクセストークンを取得してDBに記憶等しておく。
  6. 今後、GoogleAPIでカレンダー情報等にアクセスする際は、そのアクセストークンを利用してアクセスする。

Google認証画面

ソースコード(抜粋)

function GCAL_GetAuthUrl() {
	$url_ep	= ***	// 上記でGoogle認証サイトへ設定したエンドポイント
	$client	= GCAL_CreateClient($params);
	$scopes	= array('https://www.googleapis.com/auth/calendar');
	$client->setAccessType('offline');
	$client->setRedirectUri($url_ep);
	$client->setScopes($scopes);
	$client->setApprovalPrompt('force');
	$url = $client->createAuthUrl();
	return $ret;
}


function GCAL_GetTokens($code) {
	$url_ep	= ***	// 上記でGoogle認証サイトへ設定したエンドポイント
	$client	= GCAL_CreateClient($params);
	$client->setRedirectUri($url_ep);
	$client->authenticate($code);
	$token_json	= $client->getAccessToken();
	$tokens		= json_decode($token_json);
	$ret['tokens']		= $tokens;
	$ret['result']		= 'SUCCESS';
	return $ret;
}


function GCAL_CreateClient($params) {
	$clientid		= ***	// 上記でGoogle認証サイトで取得したクライアントID
	$clientsecret	= ***	// 上記でGoogle認証サイトで取得したクライアントシークレット

	$client = new Google_Client();
	$client->setClientId($clientid);
	$client->setClientSecret($clientsecret);
	$client->getIo()->setOptions(
		array(
			CURLOPT_PROXY		=> ***	// Proxy設定あるなら
			CURLOPT_PROXYPORT	=> ***	// Proxy設定あるなら
		)
	);
	return $client;
}


コメント

タイトルとURLをコピーしました