2015-06-06 2 views
0

Я установил слабый бот, используя slack-api и api в реальном времени.Создание slack-бота с использованием рубинового жемчуга slack-api, не отвечающего назад как DM

Вот сокращенная установка:

client.on :message do |data| 
    d {data} 
    bot_response = BotResponse.get_bot_response(data['text'], "session_slack") 
    Slack.chat_postMessage channel: data['user'], text: "#{bot_response}" 
end 

client.start 

С этой версией PostMessage, ответ приходит от Slackbot, не мой бот (названный кайя).

Цель: Я хочу ответить, чтобы прийти как DM от бота, к которому он был отправлен.

Когда я меняю канал на данные ['channel'], ответ приходит как DM из моего бот-кая, но попадает в бесконечный цикл.

Как мне получить бесконечный цикл ответа DM?

Примечание: Я думаю, что я вижу, как это происходит: при выборе бота как «канал» бот отвечает на его собственный ответ обратно ко мне, как будто это другой пользователь разговаривает в " бота ". Но я не могу сказать, как еще получить ответ от моего бота, а не slackbot.

ответ

0

Я считаю, что вам необходимо указать параметр username на имя бота за api: https://api.slack.com/methods/chat.postMessage, или вам нужен параметр as_user.

+0

Да, я добавил. Он все еще помещает его в другое место, но правильно назвал его. Кажется, что мой мальчик берет свои собственные ответы в качестве вклада. Так что что-то о DM от бота кажется выключенным. – Angela

0

Это смешивает Интернет и API обмена RealTime. Вы получаете сообщение от RealTime Messaging API, тогда вы используете Web API для отправки назад. Ответ на включение as_user: true верен, но вместо этого вы должны использовать RTM API для отправки сообщения.

Попробуйте https://github.com/dblock/slack-ruby-client вместо этого, что чисто разделяет два. Отправка сообщения обратно, как бот выглядит следующим образом:

client.message channel: data['channel'], text: "Hi <@#{data['user']}>!"

Чтобы избежать петли DM, убедитесь, что вы не реагирует на команды, которые испускают. Есть и другие способы, например, игнорировать бот-сообщения, но это не так надежно.

Смежные вопросы