前提・実現したいこと
現在phpを用いて非常に簡易な顧客管理システムを作成しています。
ユーザーが入力した名前などの情報をphpからスプレッドシートに記述していきたいと考えています。
多くの方がこの方法について記事を書いているのですがどうしてもうまくいきません。
発生している問題・エラーメッセージ
GoogleSheetsAPISample Google_Client Google_Service_Sheets などのインスタンスに赤波線がひかれてしまい、ローカル環境上でファイルを開こうとすると、このページは動作していませんと 表示されます。
エラーメッセージは
Undefined type 'Dotenv\Dotenv'.
Undefined constant 'dir'.
Undefined type 'Google_Client'.
Undefined type 'Google_Service_Sheets'.
Undefined type 'Google_Service_Sheets'.
Undefined type 'Google_Service_Sheets_ValueRange'.
となっています。
該当のソースコード
ソースコード require __DIR__ . '/autoload.php'; use Dotenv\Dotenv; /** * Class GoogleSheetsAPISample */ class GoogleSheetsAPISample { /** * @var Google_Service_Sheets */ protected $service; /** * @var array|false|string */ protected $spreadsheetId; /** * GoogleSheetsAPISample constructor. */ public function __construct() { $dotenv = new Dotenv(__dir__); $dotenv->load(); $credentialsPath = getenv('SERVICE_KEY_JSON'); putenv('GOOGLE_APPLICATION_CREDENTIALS=' . dirname(__FILE__) . '/' . $credentialsPath); $this->spreadsheetId = getenv('SPREADSHEET_ID›'); $client = new Google_Client(); $client->useApplicationDefaultCredentials(); $client->addScope(Google_Service_Sheets::SPREADSHEETS); $client->setApplicationName('test'); $this->service = new Google_Service_Sheets($client); } /** * @param string $date * @param string $name * @param string $comment */ public function append(string $date, string $name, string $comment) { $value = new Google_Service_Sheets_ValueRange(); $value->setValues([ 'values' => [ $date, $name, $comment ] ]); $response = $this->service->spreadsheets_values->append($this->spreadsheetId, 'シート1!A1', $value, [ 'valueInputOption' => 'USER_ENTERED' ] ); var_dump($response); } } $sample = new GoogleSheetsAPISample; $date = date('Y/m/d'); $name = '山川のりを'; $comment = 'ギターうまい'; $sample->append($date, $name, $comment); ?>
試したこと
何度かcomposerでvender がインストールできているのか確認しました。
できているはずです。
補足情報(FW/ツールのバージョンなど)
VScodeをつかっています。