みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
このシリーズでは初心者のノンプログラマー向けに「Google Apps Scriptを使ってゴミ出しLINE Botをつくる」をお題として連載を進めております。
前回の記事はこちら。
GASを使ってLINEにプッシュメッセージを送るスクリプトを紹介しました。
ただ、その中身については説明していませんでしたので、今回の記事で説明していきますね。
ということで、初心者向けGASでLINEにプッシュメッセージを送るスクリプト徹底解説をお伝えします。
では、行ってみましょう!
前回のおさらい
前回は、GASを使ってLINEに以下のように「Hello, world!」とプッシュメッセージを送るスクリプトを紹介しました。
実際のスクリプトはこちらですね。
function postMessage() {
const url = 'https://api.line.me/v2/bot/message/push';
const token = '**********'; //チャネルアクセストークン
const payload = {
to: '*****', //ユーザーID
messages: [
{ type: 'text', text: 'Hello, world!' }
]
};
const params = {
method: 'post',
contentType: 'application/json',
headers: {
Authorization: 'Bearer ' + token
},
payload: JSON.stringify(payload)
};
UrlFetchApp.fetch(url, params);
}
ただ、このスクリプトが何をしているものなのかを説明していませんでしたので、今回解説していきますよ。
LINEにプッシュメッセージを送るfetchメソッドの解説
まずスクリプトの21行目が、実際にHTTPリクエストを送信するfetchメソッドになります。
リクエスト先のurlと、いろいろなパラメーターを含むオブジェクトparamsを引数として渡していますね。
それぞれ、どのように設定をすればよいものなのか見ていきましょう。
HTTPリクエストURLとHTTPメソッド
まず、HTTPリクエストURLはリクエストの内容によってMessaging APIで固定のものが定められているものです。
「プッシュメッセージを送る」のページを開いてみてください。
以下のように書いてありますね。
このURLが、HTTPリクエスト先のURLとなります。
ちなみに「POST」は、HTTPメソッドというリクエストの種類を表します。
情報が欲しい場合は「GET」、データを送りたい場合は「POST」など、リクエストの内容に応じてHTTPメソッドを指定します。
今回の、プッシュメッセージを送る場合に使用するHTTPメソッドはPOSTということになります。これは後ほど使います。
fetchメソッドのparamsパラメーター
fetchメソッドのもう一つのパラメーターparamsですが、オブジェクトになっていて、リクエストに必要な決められたプロパティと値の組み合わせを設定する必要があります。
以下、今回必要なプロパティを公式ドキュメントから抜粋し、前述のスクリプトで指定してる内容を追記しました。
プロパティ | データ型 | 説明 | 指定する内容 |
---|---|---|---|
method | String | HTTPメソッド | ‘post’ |
contentType | String | コンテンツタイプ | ‘application/json’ |
headers | Object | リクエストに必要なHTTPヘッダーのオブジェクト | { Authorization: ‘Bearer ‘ + token } |
payload | String | リクエストの本文 | JSON.stringify(payload) |
HTTPメソッド、コンテンツタイプは、Messaging APIのドキュメントに記載されている固定の文字列です。
HTTPヘッダーはオブジェクトですが、Authorizationというプロパティと、「Bearer <アクセストークン>」という文字列のペアのみをもたせればOKです。
ここで、「Bearer」とアクセストークン(文字列)の後に半角スペースを入れるのを忘れないようにしてくださいね。
パラメーターparamsの設定をしている部分がスクリプトでいうと12~19行目になりますので、見比べてみてください。
POSTの本文: payload
メッセージを送る本文はパラメーターparams内の、payloadというプロパティに設定します。
Messaging APIの公式ドキュメントでは、以下内容のJSONを指定するとされています。
プロパティ | データ型 | 説明 | 設定内容 |
---|---|---|---|
to | String | 送信先のID | ‘*****’, //ユーザーID |
messages | メッセージオブジェクトの配列 | 送信するメッセージ | [{ type: ‘text’, text: ‘Hello, world!’ }] |
送信先のIDは、以前取得したユーザーIDを指定することになります。
メッセージはオブジェクトで表現されていて、プッシュメッセージでは5件まで同時に送信できますので、配列として渡します。
payloadはJSONである必要がありますので、JSON.stringifyメソッドで、オブジェクトをJSONに変換しています。
なお、このpayloadの内容を準備している部分が、スクリプトでいうところの5~10行目になります。
メッセージオブジェクト
メッセージオブジェクトについてですが、Messaging APIの公式ドキュメントを見ると、テキストメッセージの場合は以下のJSONとするとされています。
プロパティ | データ型 | 説明 | 設定内容 |
---|---|---|---|
type | String | メッセージタイプ | ‘text’ |
text | String | メッセージのテキスト | ‘Hello, world!’ |
メッセージについては、絵文字を追加したりいろいろとできますので、詳しくは以下をご覧ください。
まとめ
以上、初心者向けGASでLINEにプッシュメッセージを送るスクリプト徹底解説についてお伝えしました。
少しややこしいように見えるかも知れませんが、設定すべき項目が決まっていて、目的に応じてそこを埋めていけば良いだけなんですね。
このスクリプトの本質的な部分はfetchメソッドのみで、あとは必要な設定項目を準備しているだけだったりするのです。
さて、次回はゴミ出しLINE Botの作り方に入っていきます。
どうぞお楽しみに!
連載目次:【初心者向け】GASでゴミ出しLINE Botをつくる
われわれ日本人がもっとも使っているといってもいいアプリ「LINE」。Google Apps Scriptを使うと、LINEを使ったツールをつくりこともできます。このシリーズでは、初心者向けに「ゴミ出しLINE Bot」のつくりかたをお伝えしていきます!- GASでLINEにメッセージを送るためのMessage APIの超初心者向け基礎知識
- 初心者向けLINE Developersコンソールとそれにログインする方法
- 【初心者向け】GASでゴミ出しLINE Botをつくるための「チャネル」とその作成
- 初心者向けLINE Botの友だち登録とユーザーID・アクセストークンの取得
- 初心者向けGASを使ってLINEではじめてのプッシュメッセージを送るスクリプト
- 初心者向けGASでLINEにプッシュメッセージを送るスクリプトを徹底解説
- 初心者向けGASでつくるゴミ出しLINE Bot用のチャネル作成と準備
- 初心者向けGASでつくるゴミ出しLINE Botの本体部分のスクリプト
- 【初心者向け】GASで日付から何のゴミの日かを調べる関数のつくり方 for ゴミ出しLINE Bot