GASで「ねこあつめ」をChatworkにメッセージを装飾して送る「ねこあつめシリーズその15」

この記事では、GAS(Google Apps Script)で「ねこあつめ」をChatworkに送信する時に、メッセージを装飾して送る方法を掲載しています。

お世話になった記事は、いつも隣にITのお仕事さんの

【初心者向けGAS】チャットワークのメッセージ記法でBot送信するメッセージを装飾する方法

です。

今回の内容に入る前に、前回の復習をします。
前回はスプレッドシートの猫ちゃんの「なまえ」〜「とくちょう」までを配列として取得して、Chatworkに送ることによって、スプレッドシートのアクセス回数を格段に減らせました。

こちらのスプレッドシートです。

このスプレッドシートを元に、Chatworkに出力した画像とコードです。

//メインの関数でAmazonにDVDの注文をする
function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得
  const token=PropertiesService.getScriptProperties().getProperty('CW_TOKEN');//←ここを追加

  for (let i = 2; i <= lastRow; i++) {

    //もしもD列の「済」が空白だったらA列の「なまえ」を出力してD列を「済」にする
    if (!ss.getRange(i, 4).getValue()) {
      let cat=ss.getRange(i,1,1,3).getValues();//←配列catで一気に1行3列分のデータを取得する ※getValue[s]でsが付く

      //AmazonがDVDの注文を受け取る
      let body="";  //←ここで、bodyにA列、B列、C列のデータを追加していくので、bodyをletで変数として宣言
      body+=cat[0][0]+'\n';//A列:猫ちゃんの「なまえ」
      body+=cat[0][1]+'\n';//B列:猫ちゃんの「しゅるい」
      body+=cat[0][2]+'\n';//C列:猫ちゃんの「とくちょう」
      
      //ここでAmazonが宅配業者みたいなsendMessage関数にDVDの配達を依頼する
      sendMessage(token,body);
      ss.getRange(i, 4).setValue('済');

      //もしも最終行以上になったらセル範囲を消去する
      if (i >= lastRow) {
        ss.getRange(2, 4, lastRow - 1).clearContent();
      }
      break;
    }
  }
}

//宅配業者のようなsendMessage関数がAmazonからDVDを受け取って、配達を行う
function sendMessage(token,body){
  const cw=ChatWorkClient.factory({token:token}); //←APIトークンの所をtokenに置き換える
  cw.sendMessageToMyChat(body);
}

今回の内容に入る前に、ねこあつめ画像で癒されます。

さて、今回の内容に入ります。

Chatworkにメッセージを送る際にタグを使って、メッセージを装飾します。
角カッコを使った、「メッセージ記法」という書き方を使ってコードを書いて行きます。

ここでは、メッセージを[info]というタグを使って囲い始め、水平の線を[HR]というタグで挿入して、丸カッコを使って体裁を整えて、[/info]で閉じます。

タグは、シングルクォーテーションで囲います。
「/」は、バックスラッシュではなく、普通のスラッシュです。

下記のコードで、14行目から17行目までにタグを入れてコメントを付けました。

//メインの関数でAmazonにDVDの注文をする
function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得
  const token=PropertiesService.getScriptProperties().getProperty('CW_TOKEN');//←ここを追加

  for (let i = 2; i <= lastRow; i++) {

    //もしもD列の「済」が空白だったらA列の「なまえ」を出力してD列を「済」にする
    if (!ss.getRange(i, 4).getValue()) {
      let cat=ss.getRange(i,1,1,3).getValues();//←配列catで一気に1行3列分のデータを取得する ※getValue[s]でsが付く

      //AmazonがDVDの注文を受け取る
      let body='[info]';  //←ここで、囲い枠線で装飾する
      body+=cat[0][0]+'[hr]';//←A列:猫ちゃんの「なまえ」に水平線を入れる
      body+=cat[0][1]+'\n';//B列:猫ちゃんの「しゅるい」
      body+='('+cat[0][2]+')[/info]';//←C列:猫ちゃんの「とくちょう」を送ったら囲い枠線を閉じる
      
      //ここでAmazonが宅配業者みたいなsendMessage関数にDVDの配達を依頼する
      sendMessage(token,body);
      ss.getRange(i, 4).setValue('済');

      //もしも最終行以上になったらセル範囲を消去する
      if (i >= lastRow) {
        ss.getRange(2, 4, lastRow - 1).clearContent();
      }
      break;
    }
  }
}

//宅配業者のようなsendMessage関数がAmazonからDVDを受け取って、配達を行う
function sendMessage(token,body){
  const cw=ChatWorkClient.factory({token:token}); //←APIトークンの所をtokenに置き換える
  cw.sendMessageToMyChat(body);
}

まずは1匹目の猫ちゃん、「ヘキサにゃん」

1匹目の「ヘキサにゃん」が「済」になりました。
他のコ達も送ってみました。

ご精読ありがとうございました。

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん    次行くにゃん(=^x^=) <最終回>→

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。