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とクライアントシークレットをメモしておきます。
処理の流れ
- GCAL_GetAuthUrl()で、認証URLを取得
- そこへジャンプする。
- 下記のようなGoogle認証画面となる。
- 認証操作をすると、エンドポイントへ戻ってきて、パラメタにcodeがついてくる。
- GCAL_GetTokens($code)で、そのコードをもとに、getAccessTokenでアクセストークンを取得してDBに記憶等しておく。
- 今後、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;
}
コメント