Настройка присутствия errbot в HipChat
Я пытаюсь использовать Errbot с сервером HipChat (не облачным). Похоже, что Errbot запутался между именем комнаты и ее xmpp jid. Например, тестирование с комнатой с именем BotTest
это имеет 1_bottest@conf.btf.hipchat.com
:
- Когда я установил
CHATROOM_PRESENCE
на имя комнаты и отправить любое сообщение в этой комнате, Errbot вылетает с ошибкой"Room '1_bottest@conf.btf.hipchat.com' not found"
, - Когда я вместо этого устанавливаю jid комнаты, Errbot создает новую комнату с тем же именем, что и jid, и jid
'1_1_bottestconf.btf.hipchat.com@conf.btf.hipchat.com'
, Затем, когда я отправляю сообщение в этой новой комнате, он вылетает с ошибкой"Room '1_1_bottestconf.btf.hipchat.com@conf.btf.hipchat.com' not found".
Мой config.py ниже:
import logging
BACKEND = 'XMPP' # defaults to XMPP
BOT_DATA_DIR = r'/auto/home.nas03/eeshel/work/errbot/data'
BOT_EXTRA_PLUGIN_DIR = '/auto/home.nas03/eeshel/work/errbot/plugins'
BOT_LOG_FILE = r'/auto/home.nas03/eeshel/work/errbot/errbot.log'
BOT_LOG_LEVEL = logging.DEBUG
TEXT_COLOR_THEME = 'dark'
BOT_ADMINS = ('1_8@chat.btf.hipchat.com', )
BOT_PREFIX = '\\'
BOT_ALT_PREFIXES = ('Hermes',)
BOT_ALT_PREFIX_SEPARATORS = (':', ',', ';')
BOT_ALT_PREFIX_CASEINSENSITIVE = True
CHATROOM_FN = 'Hermes the Bot'
CHATROOM_PRESENCE = ('1_bottest@conf.btf.hipchat.com',)
BOT_IDENTITY = {
'username' : '1_2@hipchat.eng.<ourdomain>',
'password' : '*****',
'token' : '*****',
'endpoint' : '10.18.0.185',
}
XMPP_KEEPALIVE_INTERVAL = 60
XMPP_USE_IPV6 = False
XMPP_CA_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt"
2 ответа
Хотя документация очень хорошая, я также изо всех сил пытался сделать все правильно. Как только я сделал, перечитывание документа имеет смысл, но задним числом 20/20!
Вот пример раздела конфигурации для подключения вашего errbot к Hipchat:
# Assuming you are @jdoe in your Hipchat and you want admin privs for your bot
BOT_ADMINS = ('@jdoe', '@mmouse', )
# Let's assume your bot's Hipchat account is "superbot" with
# full name of "Super Bot"
BACKEND = 'Hipchat'
if BACKEND == 'Hipchat':
# http://errbot.io/en/latest/user_guide/configuration/hipchat.html
BOT_IDENTITY = {
# You get username by logging into Hipchat with the account, then go to
# Profile / XMPP/Jabber Info and find the "Jabber ID"
'username': '123456_1234567@chat.hipchat.com',
# Simply the password of the Hipchat account
'password': 'password12345',
# You get token by logging into Hipchat with the account, then go to
# Profile / API Access and generate an API token--assigning it all
# scopes unless you know otherwise.
'token': 'azwx2BdVzGz0riEjqybWinLbUkBSIz6rpsa259HE',
## If you're using HipChat server (self-hosted HipChat) then you should set
## the endpoint below. If you don't use HipChat server but use the hosted version
## of HipChat then you may leave this commented out.
#'endpoint': 'https://api.hipchat.com'
}
CHATROOM_FN = 'Super Bot'
BOT_ALT_PREFIXES = ('@superbot', '@SuperBot', '@stinkfinger',)
# To "listen" for any mentions of @superbot:
CHATROOM_PRESENCE = ()
# To also join rooms to listen to all messages in those rooms,
# do this instead:
#CHATROOM_PRESENCE = ('Room 1', 'Lounge',)
ВАЖНО также отметить, что мне пришлось понизить версию этих пакетов, чтобы работала интеграция с Hipchat. Я сделал эти изменения в моих требованиях. Текст:
pyasn1==0.3.7
pyasn1-modules==0.1.5
sleekxmpp==1.3.2
Вы можете обратиться по ссылке ниже, которая поможет вам http://errbot.io/en/latest/user_guide/configuration/hipchat.html