わかりました。Google Drive SDK を使用してアプリケーションをセットアップしようとしています。私はサービス アカウントとして使用しているため、セットアップは少し異なります。これが私がやっている方法です:
必要なファイルを含む:
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/auth/Google_AssertionCredentials.php';
require_once "google-api-php-client/src/contrib/Google_Oauth2Service.php";
定数を定義します。
DEFINE("TRUE_PATH",$_SERVER["DOCUMENT_ROOT"].'path/to/file');
DEFINE("SERVICE_ACCOUNT_EMAIL","somecode@developer.gserviceaccount.com");
DEFINE("DRIVE_SCOPE","https://www.googleapis.com/auth/drive");
関数:
function generateAssertion() {
$assertionCredentials = new Google_AssertionCredentials();
$assertionCredentials->serviceAccountName='somecode@developer.gserviceaccount.com';
$assertionCredentials->privateKey=
TRUE_PATH.'9e01fd1414aa082fadeec316161eb7028558fbde-privatekey.p12';
$assertionCredentials->privateKeyPassword = 'notasecret';
$p12cert = array();
$file = TRUE_PATH.'9e01fd1414aa082fadeec316161eb7028558fbde-privatekey.p12';
if (file_exists($file)) {
try {
$assertion = $assertionCredentials->generateAssertion();
return $assertion;
} catch (Exception $e) {
d($assertionCredentials);
return 'Caught exception: ' . $e->getMessage() . "\n";
}
} else {
return "no p12 privatekey file";
}
}
行 $assertion = $assertionCredentials->generateAssertion(); 次のようなコードが表示されます。
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczpcL1wvYWNjb3VudHMuZ29vZ2xlLmNvbVwvb1wvb2F1dGgyXC90b2tlbiIsInNjb3BlIjpudWxsLCJpYXQiOjEzNTMzNjk3NzUsImV4cCI6MTM1MzM3MzM3NSwiaXNzIjoiMjY5Mjg1NDU2NjY0QGRldmVsb3Blci5nc2VydmljZWFjY291bnQuY29tIn0.KMBTsGZkhLhddBFtc0PB1qZgtdQYyirhWtYixCYx1zo5Otv9pCUBfvrCXOg3JzR-mzE6zHuCZdmGOD7w_LRwYHJpoo0rdpxDXLjtNCgFZdu1d21cVAnqTkIhMGvdS_K7JP_KioXyi-nBdvZt9IXKaApIdDKhRp-T5HByIeO2ijU
私の質問は、ドライブ アカウントにアクセスできるように、generateAssertion() から返されたコード/トークンをどうするかということです。アクセス トークンとリフレッシュ トークンとして使用しようとしましたが、成功しませんでした。
これがばかげた質問である場合は申し訳ありませんが、私はSDKを初めて使用します。どんな助けでも大歓迎です。
ありがとうございました!!!