私はスラックコマンドを使って、他の人の代わりに投稿することができます。これはAWS Lambdaに存在するノード関数です。私はスラックに入る/mybot danturcotte^ hello
を入力してSlack bot - ボットが入ってくるウェブフックに返信するのを防ぎます
:
迷惑な事は、私が投稿するたびに、私のSlackbotでは、 "ダンテ" は、返信。
IpostToSlack
、私はたるみの投稿をフォローアップしません、私のボットを確保するために、これらの二つのオプションを試してみました:
1) context.succeed();
2) callback(error, null);
どちらの方法がまだダンテはnull
で応答しています。どのように私は単に着信webhookと他の何も(単に、ハローと言ってダントコット)を投稿することはできますか?
AWSラムダNodeJSコードスニペット:
var AWS = require('aws-sdk');
var qs = require('querystring');
var request = require('request');
exports.handler = function (event, context, callback) {
var params = qs.parse(event.postBody);
var botPayload = {};
botPayload.channel = params.channel_name;
if (typeof params.text !== 'undefined') {
botPayload.userToGet = params.text.split('^')[0];
getUserData(botPayload, function (error, status, body) {
var userDataArray = JSON.parse(body),
profileFound = false;
for (var i = 0; i < userDataArray.members.length; i++) {
if (!profileFound) {
if (userDataArray.members[i].name === botPayload.userToGet) {
//set bot to user
}
}
}
postToSlack(botPayload, function (error, status, body) {
//context.succeed();
callback(error, null);
});
});
}
};
function getUserData (payload, callback) {
request({
uri: 'https://slack.com/api/users.list?token=mytoken',
method: 'GET'
}, function (error, response, body) {
callback(error, response.statusCode, body);
});
};
function postToSlack (payload, callback) {
var incoming_webhook = 'https://hooks.slack.com/services/T02LHM7GA/B11BS608F';
request({
headers: {
'content-type': 'application/json'
},
uri: incoming_webhook,
body: JSON.stringify(payload),
method: 'POST'
}, function (error, response, body) {
if (error) {
return callback(error);
}
callback(null, response.statusCode, body);
});
};
私はこの正確な問題を抱えていますが、AWSコンソールはユーザーフレンドリーではありません。 APIゲートウェイコンソールでボディマッピングテンプレートを作成する方法についてもう少し詳しく説明できますか? –