https://developers.line.biz/en/reference/messaging-api/#send-push-message
にて
const line = require('@line/bot-sdk');
const client = new line.Client({
channelAccessToken: '<channel access token>'
});
const message = {
type: 'text',
text: 'Hello World!'
};
client.pushMessage('<to>', message)
.then(() => {
...
})
.catch((err) => {
// error handling
});
でいけよ、
みたいに書かれていたので、
自分のパソコンからこれを適宜当てはめたら、
普通にpush出来たので、意気揚々とAWS lambdaで使用したら、
なんかエラー出ていた。
connectionが確立されてないよ、
とか言われたけど、なぜそんなエラーがlambdaの時だけ返ってくるのか、
意味が分かってないので、どうしたら良いのか悩んでいたのですが、
試しに、async/await形式にしたら、うまく行きました。という小話です。
結局意味は分かってないのですが、
多分、他の関数で非同期的な処理行うために、関数の頭にasyncを記述しているのに、
client.pushMessage
をawaitしてなかったからだと思う。
とりあえず動いています。
以下、実際に動いているコード。
exports.handler = async function (event){
const line = require("@line/bot-sdk");
const config = {
channelAccessToken: "aaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmmnnnnooooppppqqqqrrrrssssttttuuuuvvvvwwwwxxxxyyyyzzzzAAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQ",
}
const client = new line.Client(config);
await client.pushMessage("000011112222333344445555666677777",{type:'text',text:'hello!'});
}