AWS と LINE を連携させてbotを作ってみよう・準備編を参考にnode.jsで実装しました。
おうむ返し(index.js)
'use strict';
const line = require('@line/bot-sdk');
var event;
var context;
var callback;
exports.handler = (_event, _context, _callback) => {
event = _event;
context = _context;
callback = _callback;
main();
};
let main = function() {
const client = new line.Client({
channelAccessToken: ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’
});
const message = {
type: 'text',
text: JSON.stringify(event)
};
client.replyMessage(event.events[0].replyToken, message)
.then(() => {
callback(null, {});
})
.catch((err) => {
callback(null, {});
});
};
※ channelAccessTokenの中身「XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX」はLINE developerコンソールで確認して置き換えてください。
これを応用して「画像カルーセル表示」を実装。(index.js)
詳しい使い方はリファレンスを参照してください。
'use strict';
const line = require('@line/bot-sdk');
var event;
var context;
var callback;
exports.handler = (_event, _context, _callback) => {
event = _event;
context = _context;
callback = _callback;
main();
};
let main = function() {
const client = new line.Client({
channelAccessToken: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
});
const message = {
"type": "template",
"altText": "this is a image carousel template",
"template": {
"type": "image_carousel",
"columns": [
{
"imageUrl": "https://example.com/bot/images/item1.jpg",
"action": {
"type": "message",
"label": "腰痛",
"text": "腰痛"
}
},
{
"imageUrl": "https://example.com/bot/images/item2.jpg",
"action": {
"type": "message",
"label": "頭痛",
"text": "頭痛"
}
},
{
"imageUrl": "https://example.com/bot/images/item3.jpg",
"action": {
"type": "message",
"label": "下痢",
"text": "下痢"
}
}
]
}
};
client.replyMessage(event.events[0].replyToken, message)
.then(() => {
callback(null, {});
})
.catch((error) => {
callback(null, {});
});
};
違いは「const message」の中身になります。
おうむ返し
const message = {
type: 'text',
text: JSON.stringify(event)
};
と
画像カルーセル表示(必須項目のみ)
const message = {
"type": "template",
"altText": "this is a image carousel template",
"template": {
"type": "image_carousel",
"columns": [
{
"imageUrl": "https://example.com/bot/images/item1.jpg",
"action": {
"type": "message",
"label": "腰痛",
"text": "腰痛"
}
},
{
"imageUrl": "https://example.com/bot/images/item2.jpg",
"action": {
"type": "message",
"label": "頭痛",
"text": "頭痛"
}
},
{
"imageUrl": "https://example.com/bot/images/item3.jpg",
"action": {
"type": "message",
"label": "下痢",
"text": "下痢"
}
}
]
}
};
という具合になっています。