LINE BOT API公開記念
AWS Lambdaでオウム返しBOTを作成
アカウント設定はhttps://developers.line.me から適当にやってください。
BOTを作成するとLINE_CHANNEL_ID, LINE_CHANNEL_SECRET, LINE_CHANNEL_MIDを取得できます
- まずはAWSのマネジメントコンソールに入り[Create a Lambda function]をクリック
- Node.jsのfunctionを選ぶ
- Code欄を以下のコードに変更
var https = require('https');
exports.handler = function(event, context) {
console.log('Received event:', JSON.stringify(event, null, 2));
var msg = event.result[0];
var data = JSON.stringify({
to: [msg.content.from.toString()],
toChannel: 1383378250,
eventType: "138311608800106203",
content: msg.content
});
var url ='https://trialbot-api.line.me/v1/events';
var opts = {
host: 'trialbot-api.line.me',
path: '/v1/events',
headers: {
"Content-type": "application/json; charset=UTF-8",
"X-Line-ChannelID": "LINE_CHANNEL_ID",
"X-Line-ChannelSecret": "LINE_CHANNEL_SECRET",
"X-Line-Trusted-User-With-ACL": "LINE_CHANNEL_MID"
},
method: 'POST'
}
var req = https.request(opts, function(res){
res.on('data', function(chunk){
console.log(chunk.toString())
}).on('error', function(e){
console.log('ERROR: '+ e.stack);
})
})
req.write(data)
req.end();
};
- LINE_CHANNEL_ID, LINE_CHANNEL_SECRET, LINE_CHANNEL_MIDは適当に変更してください
- 次にAPI endpointsに移動し、[Add API endpoint]をクリック
- API Gatewayを選択し、もろもろ設定し、Methodは「POST」に設定
- 追加後API endpoint URLをコピーしLINE developersのBasic InformationのCallback URLにペースト
- 作成したBOTにメッセージを送るとLambdaのCloud watchのログに
{
"statusCode": "427",
"statusMessage": "Your ip address [xxx.xxx.xxx.xxx] is not allowed to access this API."
}
- とip addressが書かれるのでこれをLINE developersのServer IP Whitelistに追加
- 少し経つと設定されオウム返しBOTの完成
追記 2016/4/28
Whitelistを空にするとどこからでもアクセス可能となりました。
サーバーを指定したくない場合はWhitelistの設定を消してください。
つぎはBot Frameworkかな・・・