kintoneGeeks blog

kintoneに関連する情報を発信しています

MAKEでLINEとkintoneを扱う際に返される[400] Invalid reply tokenのエラー回避方法

はじめに

本記事は、kintoneの複数のレコードを取得するAPIを使ってLINEメッセージを複数送る際に遭遇した、「[400] Invalid reply token」というエラーの回避方法を紹介します。 具体的には、MAKEでLINEとkintoneの配列のデータを扱う場合に使うAggregatorモジュール、さらにkintoneのデータをMAKEで取得する際に役に立つQueryの設定方法を案内します。

Invalid reply token エラーの原因

「[400] Invalid reply token」は、LINEの無効のReply Tokenを使って応答メッセージを送ろうとする時に返ってきます。筆者は、以前執筆した下記の記事を検証していた際にこの問題に遭遇しました。

kintone-geeks.hatenablog.com

kintoneで取得した情報を基に、1つのReply Tokenで複数のLINEメッセージを送ろうとした時に、このエラーが返されました。1件目のメッセージを送った後にReply Tokenが無効になったため、2件目以降の処理からはエラーが返されました。

Text Aggregator で回避する

Text Aggregator とは

取得したデータをそれぞれLINEメッセージで送るのではなく、情報を1つにまとめて1つのLINEメッセージで送ることにより、エラーの回避をすることにしました。

MAKEには、複数のデータを1つにまとめるAggregatorというモジュールがあります。今回の例では、配列のデータを1つの文字列にまとめるText Aggregatorモジュールを使います。

MAKEのText Aggregatorモジュール

Text Aggregator の設定

kintoneとLINEモジュールの間に、ToolsのText aggregator モジュールを配置します。

全体像
MAKE上でのText Aggregatorの配置場所

Text Aggregator のアドバンス設定を表示すると、細かい設定が可能です。

項目 設定する値 メモ
Source Module kintoneで取得した複数レコード
Row separator New row この設定をすると、
1行ずつまとめてくれる
text Source Moduleから取得したい項目

設定項目
Text Aggregatorの設定項目

LINEの設定

Text aggregator モジュールでまとめた文字列を、LINEの返信メッセージに設定します。

返信メッセージを修正
LINEモジュールにText Aggregatorの結果を渡します

動作確認

LINEメッセージを起点に、kintoneが複数のレコード情報を配列として取得します。Text aggregator モジュールを通すことで、配列のデータが1つの文字列にまとまります。LINEのSend a Reply Messageで、まとまったデータが1つのLINEメッセージで送られます。これによりLINEで1件しかメッセージを送っていないので、「[400] Invalid reply token」のエラーを回避することが出来ました。

make連携.gif

Queryオプションでkintoneからの取得データを調整する

kintoneのSearch Recordsモジュールはデフォルトで、絞り込みがされていないデータがレコード番号の降順で返ってきます。そのため、Text Aggregator を使用する前に、kintoneから取得したデータをある程度調整しなければならない場合があります。kintoneモジュールの Query オプションを設定することで、データの絞り込みやデータの順序を変更することが出来ます。

例として、日付フィールドの値が昨日の日付で、レコード番号の昇順にデータを返して欲しい場合は下記のようなクエリを準備します。

日付 = YESTERDAY() order by レコード番号 asc

kintone のクエリの詳細な設定方法に関してはcybozu develper networkのドキュメントを参照して下さい。

こちらのクエリをkintoneモジュールのQueryオプションに設定します。

query
query

これでMAKEを走らせると、クエリ通りの絞り込みと順序でデータが返されます。このデータを基にText aggregator を使用することで、kintoneとの連携がより効率良く行えます。

終わりに

本記事ではMAKEでLINEを扱う際の「[400] Invalid reply token」の原因、エラーの回避方法とkintoneのクエリの設定方法について案内しました。

MAKE、LINE APIやkintone APIの詳細の情報については、各サービスのドキュメントをご確認下さい。