line bot推送多訊息


1. 事前準備:

(1) 取得對方的User ID

需請對方加bot好友。對方封鎖bot好友時,對方會收不到發送的訊息。

(2) 填入將User ID填入變數

取代下面程式碼的targetUID/TARGETUID的值。

(3) 設定環境變數

export CHANNEL_ACCESS_TOKEN=你的line bot的access token

2. 使用node.js發送

const targetUID = 'U1fcb...';

const line = require('@line/bot-sdk');

const client = new line.Client({
  channelAccessToken: process.env.CHANNEL_ACCESS_TOKEN,
});

const msg1 = { type: 'text', text: 'Hello World1' };
const msg2 = { type: 'text', text: 'Hello World2' };

client.pushMessage(targetUID, msg1)
  .then(() => {
    console.log('send1 ok!');
    client.pushMessage(targetUID, msg2)
    .then(() => {
      console.log('send2 ok!');
    })
    .catch((err) => {
      console.error(err);
    });
  })
  .catch((err) => {
    console.error(err);
  });

2.1 執行範例

若上面程式碼命名為send.js則
node send.js

3. 使用CURL發送@Linux

export TARGETUID=U1fcb...
curl -v -X POST https://api.line.me/v2/bot/message/push \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer ${CHANNEL_ACCESS_TOKEN?not found env}" \
-d "{
    \"to\": \"${TARGETUID?not found env}\",
    \"messages\":[
        {\"type\":\"text\", \"text\":\"Hello, world1\"},
        {\"type\":\"text\", \"text\":\"Hello, world2\"}
    ]
}"

後面訊息部份看起來比較亂,是因為json需要用雙引號,而我從BASH取環境變數也需要雙引號,只好都變成跳脫字元。

4. 參考

Line開發者文件
https://developers.line.biz/en/docs/messaging-api/building-bot/#sending-a-request-to-an-endpoint

留言