APIトークンを保存
ルームIDを取得
メッセージ送信コード

💻 GASからメッセージ送信

取得したAPIトークンを使って、実際にメッセージを送信してみましょう

💾 ステップ1:APIトークンをGASに保存

まず、前のセクションで取得したAPIトークンをGASの プロパティサービスに保存します。

プロパティサービスは、GAS専用の「安全な保管庫」のようなものです。 ここにAPIトークンを保存することで、コードに直接書かなくても済むため、セキュリティが向上しますよ。

💡

なぜプロパティサービスを使うのか?

APIトークンをコード内に直接書いてしまうと、そのコードを他の人に見せた時に、 トークンが漏洩してしまう危険があります。 プロパティサービスを使えば、トークンはコードとは別の場所に安全に保存されるため、 コードを共有しても安心ですよ。

📝 APIトークンを保存するコード

function setChatworkApiToken() {
  // プロパティサービスを取得
  const scriptProperties = PropertiesService.getScriptProperties();

  // APIトークンを保存
  scriptProperties.setProperty('CHATWORK_API_TOKEN', 'YOUR_API_TOKEN_HERE');

  Logger.log('APIトークンを保存しました');
}

🔧 実行手順

  1. 1. 上記のコードをGASエディタに貼り付けます
  2. 2. YOUR_API_TOKEN_HEREの部分を、実際に取得したAPIトークンに置き換えます
  3. 3. 関数を実行します(初回のみ実行すればOKです)
  4. 4. 実行後は、このコードは削除しても構いません(トークンは保存されています)
GASエディタでプロパティサービスのコードを実行

クリックで拡大表示

⚠️ セキュリティ上の注意

トークンをプロパティサービスに保存した後は、コード内からトークンの文字列を削除しておきましょう。 また、GASプロジェクトを他の人と共有する場合でも、プロパティサービスの内容は共有されないため、 トークンが漏洩する心配はありませんよ。

🆔 ステップ2:ルームIDを取得

チャットワークでメッセージを送信するには、ルームIDが必要です。 ルームIDは、送信先のグループチャットを特定するための番号です。

ルームIDの確認方法は2つあります。 URLから取得する方法と、グループチャット設定画面から確認する方法です。 どちらも簡単なので、やりやすい方法を選んでくださいね。

📋 方法1:URLからルームIDを確認

1

チャットワークで送信先のルームを開く

メッセージを送信したいグループチャットやダイレクトメッセージを開きます。

2

URLを確認

ブラウザのアドレスバーに表示されているURLを確認します。 URLは以下のような形式になっています:

https://www.chatwork.com/#!rid12345678
3

「rid」の後の数字がルームID

URLのridの後に続く数字が、 そのルームのルームIDです。 上の例では、12345678がルームIDになります。 この数字をメモしておきましょう。

📋 方法2:グループチャット設定画面から確認(おすすめ)

1

グループチャットを開く

メッセージを送信したいグループチャットを開きます。

2

グループチャットの設定を開く

グループチャット画面の右上にある設定アイコン(歯車マーク)をクリックして、 「グループチャットの設定」を選択します。

3

「チャット情報」タブでルームIDを確認

設定ダイアログが開いたら、「チャット情報」タブを選択します。 画面下部に「ルームID」が表示されているので、この数字をメモしておきましょう。

グループチャット設定からルームIDを確認

クリックで拡大表示

💡 ヒント

ルームIDは、送信先ごとに異なります。 複数のルームに送信したい場合は、それぞれのルームIDを確認して使い分けましょう。 また、自分専用のテストルームを作って、そこでメッセージ送信のテストをするのがおすすめですよ。

📤 ステップ3:メッセージ送信コードを作成

それでは、いよいよチャットワークにメッセージを送信するコードを作成しましょう。 以下のコードで、GASからチャットワークに自動的にメッセージを送信できますよ。

📝 完全なメッセージ送信コード

function sendChatworkMessage() {
  // プロパティサービスからAPIトークンを取得
  const scriptProperties = PropertiesService.getScriptProperties();
  const apiToken = scriptProperties.getProperty('CHATWORK_API_TOKEN');

  // ルームID(送信先のルーム)
  const roomId = '12345678'; // ここに実際のルームIDを入力

  // 送信するメッセージ
  const message = 'GASからの自動送信テストです!';

  // APIエンドポイント
  const url = `https://api.chatwork.com/v2/rooms/${roomId}/messages`;

  // リクエストオプション
  const options = {
    'method': 'POST',
    'headers': {
      'X-ChatWorkToken': apiToken
    },
    'payload': {
      'body': message
    }
  };

  // API呼び出し
  try {
    const response = UrlFetchApp.fetch(url, options);
    Logger.log('メッセージ送信成功: ' + response.getContentText());
  } catch (error) {
    Logger.log('エラー: ' + error.message);
  }
}

🔍 コードの詳しい解説

1. APIトークンの取得

const apiToken = scriptProperties.getProperty('CHATWORK_API_TOKEN');

ステップ1で保存したAPIトークンを、プロパティサービスから取得しています。 これにより、コード内にトークンを直接書かなくても済みます。

2. ルームIDの指定

const roomId = '12345678';

ステップ2で確認したルームIDを指定します。 この例では12345678となっていますが、 実際にはあなたのルームIDに置き換えてくださいね。

3. メッセージの内容

const message = 'GASからの自動送信テストです!';

送信したいメッセージの内容を指定します。 この部分を変更することで、好きなメッセージを送信できます。

4. APIエンドポイントの指定

const url = `https://api.chatwork.com/v2/rooms/${roomId}/messages`;

チャットワークAPIのメッセージ送信用エンドポイントを指定しています。 ${roomId}の部分に、先ほど指定したルームIDが埋め込まれます。

5. リクエストオプションの設定

const options = { ... }

APIを呼び出すための設定です。 method: 'POST'でPOSTリクエストを指定し、 headersにAPIトークンを含めています。 payloadには送信するメッセージ本文を指定しています。

6. エラーハンドリング

try { ... } catch (error) { ... }

APIの呼び出しが失敗した場合のエラー処理を行っています。 エラーが発生した場合は、ログにエラーメッセージが記録されるため、 問題の原因を特定しやすくなりますよ。

🚀 コードの実行手順

  1. 1. 上記のコードをGASエディタに貼り付けます
  2. 2. roomIdを、実際のルームIDに置き換えます
  3. 3. messageを、送信したい内容に変更します
  4. 4. 関数を実行します
  5. 5. チャットワークで、メッセージが届いているか確認します!
GASエディタでメッセージ送信コードを実行

クリックで拡大表示

チャットワークで受信したメッセージ

クリックで拡大表示

🎉 成功した場合

コードの実行が成功すると、指定したチャットワークのルームにメッセージが届きます。 ログには「メッセージ送信成功」と表示されますよ。 もし届かない場合は、ルームIDやAPIトークンが正しいか確認してみてくださいね。

📝 このセクションのまとめ

皆さん、GASからチャットワークにメッセージを送信する方法について理解できましたでしょうか?

  • APIトークンはプロパティサービスに保存することで、セキュアに管理できます
  • ルームIDは、チャットワークのURLから確認できます
  • UrlFetchApp.fetchを使ってチャットワークAPIを呼び出します
  • エラーハンドリングを入れることで、問題が発生した時も安心です

次のセクションでは、実際の業務で使える活用例を3つ紹介します。 Googleフォームやスプレッドシートと組み合わせた実用的なツールを見ていきましょう!

次のセクションへ:実用的な活用例 →