client.replyMessage()
のresponseのステータスコードが200系ではなく400系の場合もあるのではないでしょうか。確認してみてください。
ksytさん、ありがとうございます!
別のサーバーに環境を移したら動作しました。 replyできたのは嬉しいんですが、ちょっとう〜んってところです。。
nodejsでオウム返しのLINE BOTを作成しています。
端末で送信したメッセージを受信し、 line-sdkのclient.Replyでメッセージを返しているのですが、端末でメッセージが受信できません。 端末側では既読にはなります。
MessageAPIの設定は下記のようにしています。 グループ・複数人チャットへの参加を許可する:有効 応答メッセージ :無効 あいさつメッセージ:有効 利用できるAPI:REPLY_MESSAGE / PUSH_MESSAGE
app.post('/webhook', line.middleware(config), (req, res) => { console.dir(req.body.events);
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result));
});
const client = new line.Client(config);
async function handleEvent(event) {
if (event.type !== 'message' || event.message.type !== 'text') {
return Promise.resolve(null);
}
console.log( "replyToken:" + event.replyToken ); // (1) console.log( "msg:" + event.message.text ); // (2)
return client
.replyMessage(event.replyToken, {
type: 'text',
text: event.message.text //実際に返信の言葉を入れる箇所
})
.catch(( err ) => {
if( err instanceof HTTPError ) {
console.error( err.statusCode );
}
});
}
デベロッパーコンソールの「検証」ではOKとなります。
return client..replyMessage(event.replyTokenにcatchを入れたのですが、 catchには引っかかりませんでした。
[ { type: 'message', message: { type: 'text', id: 'zzzzz', text: 'aaaa' }, timestamp: 1644043573054, source: { type: 'user', userId: 'aaaaaa' }, replyToken: 'bbbb', // (3) mode: 'active' } ] (1)(2)の表示内容です。 replyTokenは(3)の内容が設定されています。
replyToken:bbbb msg:aaaa
client.replyMessage()
のresponseのステータスコードが200系ではなく400系の場合もあるのではないでしょうか。確認してみてください。
ksytさん、ありがとうございます!
別のサーバーに環境を移したら動作しました。 replyできたのは嬉しいんですが、ちょっとう〜んってところです。。