Настройка присутствия errbot в HipChat

Я пытаюсь использовать Errbot с сервером HipChat (не облачным). Похоже, Errbot путается между названием комнаты и ее xmpp jid. Например, тестирование комнаты с именем BotTest, jid которой равен [email protected]:

  • Когда я устанавливаю CHATROOM_PRESENCE в имя комнаты и отправляю любое сообщение в эту комнату, Errbot вылетает с ошибкой "Room '[email protected]' not found".
  • Когда вместо этого я устанавливаю jid комнаты, Errbot создает новую комнату с тем же именем, что и jid, и jid '[email protected]'. Затем, когда я отправляю сообщение в эту новую комнату, оно вылетает с ошибкой "Room '[email protected]' 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 = ('[email protected]', )
BOT_PREFIX = '\\'
BOT_ALT_PREFIXES = ('Hermes',)
BOT_ALT_PREFIX_SEPARATORS = (':', ',', ';')
BOT_ALT_PREFIX_CASEINSENSITIVE = True
CHATROOM_FN = 'Hermes the Bot'
CHATROOM_PRESENCE = ('[email protected]',)
BOT_IDENTITY = {
    'username' : '[email protected].<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"

person curmudgeon    schedule 30.08.2017    source источник
comment
@HFBrowning - спасибо за правки!   -  person curmudgeon    schedule 31.08.2017
comment
@HFBrowning - я не добавлял никакого собственного кода. Это просто попытка запустить errbot из коробки. Я добавил файл config.py, который я использую (без комментариев), надеясь, что он предоставит больше информации.   -  person curmudgeon    schedule 05.09.2017


Ответы (2)


Вы можете перейти по ссылке ниже, которая поможет вам http://errbot.io/en/latest/user_guide/configuration/hipchat.html

person Akash    schedule 30.08.2017
comment
@Akash - эта ссылка была основой для моей конфигурации. Это не проливает свет на проблему, которую я описал. - person curmudgeon; 31.08.2017

Хотя документация очень хороша, я также изо всех сил пытался получить эти вещи в самый раз. Как только я это сделал, перечитать документ имеет смысл, но задним числом это 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': '[email protected]',

        # 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 заработала. Я внес эти изменения в мои требования.txt:

pyasn1==0.3.7
pyasn1-modules==0.1.5
sleekxmpp==1.3.2
person TroyWolf    schedule 14.11.2018