AWS Lambdaを利用してChatWorkにメッセージ送信
環境
AWS Lambda
- Node.js 6.10
- Lambdaの実行権限だけつけて、No VPC環境で実行(単にめんどくさかった。)
ChatWorkでやること
- 自分のAPIトークンの取得
- 投稿するチャンネルの用意(ルームIDの取得)
この辺はChatWorkのドキュメント見てください・・・
実装
外部モジュールは使わない。
index.handler
var https = require ('https');
exports.handler = function(event, context) {
var body = 'body=' + event.message;
var options = {
host: 'api.chatwork.com',
path: '/v2/rooms/'+ event.room_id +'/messages',
method: 'POST',
headers: {
'X-ChatWorkToken': process.env.TOKEN,
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': body.length
}
};
var req = https.request(options, function (res) {
res.on('data', function (chunk) {
// console.log('--- on ' + (+new Date() * 0.0001) + ' ---');
// console.log(chunk.toString());
}).on('error', function (e) {
// console.log('--- err ' + (+new Date() * 0.0001) + ' ---');
// console.log('ERROR:' + e.stack);
});
});
// console.log('--- req ' + (+new Date() * 0.0001) + ' ---');
req.write(body);
// console.log('--- end ' + (+new Date() * 0.0001) + ' ---');
req.end();
};
event
event
{
"room_id" : "{ChatWorkの送信対象のチャンネル}",
"message" : "投稿するメッセージ"
}
Lambda環境変数
- TOKEN
- 自分のAPIキー
TODO
- API Gateway経由してWebhookをする。
- Jenkinsから通知
- GitHubから通知
- JIRAから通知
- 日時レポート的なやつの発行
経緯
SlackからChatWorkを使わざるをえなくなったためWebhookを移行するために泣く泣く調べてる最中なう。
ということで、サーバレスにしようということでAWS Lambdaで環境構築メモを残しておけば誰かの役に立つかもしれないと(いないか。。。)
参考
Author And Source
この問題について(AWS Lambdaを利用してChatWorkにメッセージ送信), 我々は、より多くの情報をここで見つけました https://qiita.com/KenjiNakamura/items/3bd729bf0458d10b8d5e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .