SQLの窓

2019年01月20日


PHP + cURL で Google Photo API の アクセストークンを取得する

Google API ConsoleWebアプリケーションの OAuth クライアント ID を取得して使用します。そこには、承認済みのリダイレクト URI を登録して API からの呼び出しでその URI を呼べるようにします。

そうすると、以下の URL で Google API の oauth によりアカウントで権限の承認を行った後準備しておいた リダイレクト URI  にジャンプします。

その時 code が手に入るので、それと認証情報の他のデータを使って cURL で アクセストークンを取得します( アクセストークンの生存期間は3600秒 )

クライアント ID : 
登録した承認済みのリダイレクトURI : 



https://accounts.google.com/o/oauth2/v2/auth?client_id=クライアントID&response_type=code&scope=https://www.googleapis.com/auth/photoslibrary&redirect_uri=登録した承認済みのリダイレクトURI

承認済みのリダイレクト URI に用意する PHP
<?php

// ************************************
// 表示用
// ************************************
print "<pre>";
print_r($_GET);

// ************************************
// API データ
// ************************************
$client_id = 'クライアント ID';
$client_secret = 'クライアント シークレット';
$redirect_uri = 'http://localhost/gapi/examples/idtoken.php';

// ************************************
// curl 処理
// ************************************
$curl = curl_init();

// ************************************
// デバッグ用の詳しいメッセージを出力
// ************************************
curl_setopt($curl, CURLOPT_VERBOSE, true);
$fp_debug = fopen("./debug.txt","w");
curl_setopt($curl, CURLOPT_STDERR, $fp_debug);

// ************************************
// POST 処理
// ************************************
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_URL, "https://www.googleapis.com/oauth2/v4/token");
// ************************************
// データ
// ************************************
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([
	'code' => $_GET['code'],
	'client_id' => $client_id,
	'client_secret' => $client_secret,
	'redirect_uri' => $redirect_uri,
	'grant_type' => 'authorization_code'
]));

// ************************************
// オプション
// ************************************
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

// ************************************
// https 用
// ************************************
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);

// ************************************
// ヘッダ内容
// ************************************
$handle = fopen("./header.txt", "w");
curl_setopt($curl, CURLOPT_WRITEHEADER, $handle);
 
// ************************************
// 送信
// ************************************
$result = curl_exec($curl);
if($result === false) {
	$result = 'Curl error: ' . curl_error($ch);
} 

// ************************************
// 終了処理
// ************************************
curl_close($curl);
fclose($fp_debug);
fclose($handle);
 
// ************************************
// 結果
// ************************************
print $result;

// ************************************
// 表示用
// ************************************
print "</pre>";

?>


関連する記事

Windows 用 curl で、Googls Photo API を呼び出して画像の baseUrl を取得する




【PHP + 通信の最新記事】
posted by lightbox at 2019-01-20 20:39 | PHP + 通信 | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり