アプリケーション

Google スプレッドシート API 呼び出し

Google スプレッドシートで API を呼び出す方法は、Google Apps Script を使用することで簡単に実現できます。Apps Script は、Google の提供する JavaScript ベースのプラットフォームで、Google スプレッドシートやその他の Google サービスを自動化したり、拡張したりするために使用されます。この記事では、Google スプレッドシートから一般的な API を呼び出す方法について、完全かつ包括的に解説します。

1. Google スプレッドシートで Apps Script エディタを開く

まず最初に、Google スプレッドシートで Apps Script エディタを開く必要があります。次の手順に従ってください。

  1. Google スプレッドシートを開く。
  2. メニューの「拡張機能」をクリックし、「Apps Script」を選択します。
  3. Apps Script エディタが開かれるので、ここでコードを記述していきます。

2. 必要な API のエンドポイントを取得

API を呼び出すためには、その API のエンドポイントを知る必要があります。例えば、天気情報を取得するために OpenWeatherMap API を使用すると仮定すると、次のような URL を使用します:

bash
https://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=YOUR_API_KEY

YOUR_API_KEY は、OpenWeatherMap の API キーです。このように、まず呼び出したい API のドキュメントを参照して、エンドポイント URL と必要なパラメータを確認してください。

3. API 呼び出しのための Apps Script コード

次に、Google Apps Script を使用して API を呼び出すコードを作成します。以下のコード例では、OpenWeatherMap API を呼び出し、その結果を Google スプレッドシートに表示する方法を示します。

javascript
function getWeatherData() { // API エンドポイントと API キー var apiKey = 'YOUR_API_KEY'; var city = 'Tokyo'; var url = 'https://api.openweathermap.org/data/2.5/weather?q=' + city + '&appid=' + apiKey; // API 呼び出し var response = UrlFetchApp.fetch(url); // レスポンスを JSON 形式にパース var json = JSON.parse(response.getContentText()); // 結果をスプレッドシートに書き込む var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var temperature = json.main.temp; // 温度情報 var weatherDescription = json.weather[0].description; // 天気の説明 // A1 セルに都市名、A2 セルに温度、A3 セルに天気の説明を表示 sheet.getRange('A1').setValue('City: ' + city); sheet.getRange('A2').setValue('Temperature: ' + temperature + ' K'); sheet.getRange('A3').setValue('Weather: ' + weatherDescription); }

このスクリプトでは、OpenWeatherMap API から天気情報を取得し、取得した温度と天気の説明をスプレッドシートに書き込みます。UrlFetchApp.fetch() メソッドを使用して API を呼び出し、そのレスポンスを JSON 形式で取得しています。その後、JSON.parse() で JSON をパースし、必要な情報を取得してスプレッドシートに表示します。

4. API 呼び出しの設定

Google スプレッドシートに書き込んだデータを更新するために、定期的に API 呼び出しを行いたい場合は、トリガーを設定することができます。Apps Script では、時間ベースのトリガーを使用して、特定の時間に自動的にスクリプトを実行することが可能です。

例えば、毎日午前 9 時に天気情報を取得したい場合、次のようにトリガーを設定します。

javascript
function createTimeDrivenTriggers() { ScriptApp.newTrigger('getWeatherData') .timeBased() .everyDays(1) // 毎日実行 .atHour(9) // 午前 9 時に実行 .create(); }

このコードを Apps Script エディタに追加して実行すると、毎日午前 9 時に自動的に getWeatherData 関数が呼び出され、天気情報がスプレッドシートに更新されます。

5. エラーハンドリングとデバッグ

API 呼び出しを行う際には、エラーハンドリングを行うことが重要です。API が応答しない場合やエラーが発生した場合、適切なメッセージを表示して処理を中断することができます。以下のように、エラーハンドリングを追加します。

javascript
function getWeatherData() { try { var apiKey = 'YOUR_API_KEY'; var city = 'Tokyo'; var url = 'https://api.openweathermap.org/data/2.5/weather?q=' + city + '&appid=' + apiKey; var response = UrlFetchApp.fetch(url); // レスポンスのステータスコードを確認 if (response.getResponseCode() !== 200) { throw new Error('API 呼び出しに失敗しました。ステータスコード: ' + response.getResponseCode()); } var json = JSON.parse(response.getContentText()); var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var temperature = json.main.temp; var weatherDescription = json.weather[0].description; sheet.getRange('A1').setValue('City: ' + city); sheet.getRange('A2').setValue('Temperature: ' + temperature + ' K'); sheet.getRange('A3').setValue('Weather: ' + weatherDescription); } catch (error) { Logger.log('エラーが発生しました: ' + error.message); SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').setValue('エラー: ' + error.message); } }

このコードでは、try...catch ブロックを使用して、API 呼び出し中に発生したエラーを捕捉し、スプレッドシートにエラーメッセージを表示します。Logger.log() を使うことで、エラーメッセージを Apps Script のログに記録することもできます。

6. まとめ

Google スプレッドシートと Google Apps Script を使用すると、簡単に API を呼び出してデータを取得し、スプレッドシートに表示することができます。API キーやエンドポイントの取得、API 呼び出しのコード作成、エラーハンドリングなどを行うことで、スムーズに自動化を実現できます。

  • API 呼び出しを行うには UrlFetchApp.fetch() を使用。
  • レスポンスを JSON として処理し、スプレッドシートにデータを入力。
  • 定期的な実行が必要な場合は、時間ベースのトリガーを設定。
  • エラーハンドリングを行い、エラー時に適切なメッセージを表示。

これで、Google スプレッドシートから API を呼び出し、データを取得する基本的な方法が理解できたと思います。必要に応じて、さらに高度な API 呼び出しや処理を追加して、自分だけの自動化ツールを作成することができます。

Back to top button