Google Spread Sheetにアクセスしてデータを操作したいと考えてるのですが(今回は追加)
上手くいかず質問させていただきます
やったこと
https://agohack.com/writing-values-using-google-sheets-api-php/
上記のサイトを参考に設定しました。
①一般に公開したくないスプレッドシートなので認証はサービスアカウントを選択。
②スプレッドシートの共有設定で上記のサービスアカウントのアドレスを編集者として設定。
中身は以下の状態
③発行したjsonファイルはlaravelプロジェクトのstorage/app/json配下に置く(ファイル名はauth-key.json)
ライブラリの追加
php composer.phar require google/apiclient:^2.0
④スプレッドシートアクセス用のphpファイル作成。
<?php require_once __DIR__ . '/vendor/autoload.php'; define('APPLICATION_NAME', 'test'); define('CLIENT_SECRET_PATH', storage_path('app/json/auth-key.json')); // スコープの設定 define('SCOPES', implode(' ', array( Google_Service_Sheets::SPREADSHEETS) )); // アカウント認証情報インスタンスを作成 $client = new Google_Client(); $client->setScopes(SCOPES); $client->setAuthConfig(CLIENT_SECRET_PATH); // シートのインスタンスを生成 $service = new Google_Service_Sheets($client); echo($service); try { // スプレッドシートの ID $spreadsheetId = '*****************************'; // 更新するシートの名前とセルの範囲 $range = '202004!A2:B7'; // 更新するデータ $values = [ ["A1", "B1"], ["2019/1/1", "2020/12/31"], ["アイウエオ", "かきくけこ"], [10, 20], [100, 200], ['=(A5+A6)', '=(B5+B6)'] ]; $updateBody = new Google_Service_Sheets_ValueRange([ 'values' => $values ]); // valueInputOption を指定( USER_ENTERED か RAW から選択) $params = [ 'valueInputOption' => 'USER_ENTERED' ]; $result = $service->spreadsheets_values->update($spreadsheetId, $range, $updateBody, $params); // 更新したセルの数が返ってくる echo $result->getUpdatedCells(); } catch (Google_Exception $e) { // $e は json で返ってくる $errors = json_decode($e->getMessage(),true); $err = "code : ".$errors["error"]["code"].""; $err .= "message : ".$errors["error"]["message"]; echo "Google_Exception".$err; }
echo($service)の時点で一部変数を出力させようとしてますが
php ファイル名.php で実行しても出力されず、アクセスできてないのかなと感じてます。
何か漏れてること等あればご教示いただけますと幸いです。
宜しくお願いします。
あなたの回答
tips
プレビュー