前回の記事でヴィヴィオを実装したので、今度はアインを動かしてみました。
詳細を書くのは面倒なので、ハマりそうなポイントだけ書いた。
Amazon API Gateway
普通にPOSTのAPIを作れば良い。
ただし、SlackのOutgoing WebHooksは application/x-www-form-urlencoded
で送られるため、その対応が必要。
Mapping Templatesの設定
Integration Request でMapping Templatesを設定する必要がある。
Templateを $input.json('$')
にすればおk。
Amazon Lambda に登録するコード
普通に日本語を書くと文字化けたので、エンティティ参照で書いて回避してます。
console.log('Loading function'); exports.handler = function(event, context) { var payload = {}; event.split('&').forEach(function(param) { var kv = param.split('='); payload[kv[0]] = kv[1]; }); if (payload.token !== '<Token>') { context.fail('Invalid token'); } else if (payload.user_name === 'slackbot') { context.context.succeed('This event skipped because user is slack_bot'); } else { context.done(null, {text: "\u30a2\u30a4\u30f3\u30cf\u30eb\u30c8\u30fb\u30b9\u30c8\u30e9\u30c8\u30b9\u3001\u53c2\u308a\u307e\u3057\u305f"}); } };
Slackの設定
Outgoing WebHooks の設定をする。
動作イメージ