Este é um back -end para o Google Hangouts Chat (https://chat.google.com) para errbot (https://errbot.io).
Ele permite que você use o Errbot para criar bots, mas, como sempre, é um trabalho em andamento.
git clone https://github.com/cloudflare/GHC-Errbot
e então
BACKEND = 'Google-Hangouts-Chat'
BOT_EXTRA_BACKEND_DIR = '/path/to/where/you/cloned/the/repo/'
para o seu config.py
Crie um pub/sub tópico do Google em um projeto GCE
Crie um assinante sobre esse tópico e conceda as permissões de assinantes da sua conta de bot
Gerar um creds.json para o seu bot
Crie um aplicativo com errbot init
e, em seguida, crie um bloco BOT_IDENTITY
em seu config.py com as seguintes informações:
BOT_IDENTITY = {
'GOOGLE_CREDS_FILE': '/path/to/bot/creds.json',
'GOOGLE_CLOUD_ENGINE_PROJECT': '<your project name>',
'GOOGLE_CLOUD_ENGINE_PUBSUB_TOPIC': '<your pub/sub topic>',
'GOOGLE_CLOUD_ENGINE_PUBSUB_SUBSCRIPTION': '<your pub/sub subscription name>',
}
Defina bot_prefix como o nome do bot, incluindo a menção ( @
)
(Opcional) Para ativar as métricas do Prometheus, defina o METRICS_PORT como um número inteiro. Esta será a porta que você deseja abrir para métricas.
Este back -end suporta anexos em eventos de mensagem. Para baixar um anexo de upload do Google Chat, precisamos usar a API GetAttachment e a solicitação GET HTTP com a autenticação do portador . Como o back-end já está autenticado, fornecemos oportunisticamente um objeto de download pronto para uso com o contexto da mensagem, para que os plug-ins Errbot possam usá-lo para baixar diretamente os anexos, não é necessário etapas extras.
Aqui está um exemplo de código sobre como usar o ajudante de downloader em um plug -in Errbot:
from io import BytesIO
from errbot import BotPlugin , botcmd
@ botcmd ( split_args_with = None )
def upload ( self , msg , args ):
attachments = msg . _extras . get ( 'attachment' , [])
for attachment in attachments :
if attachment [ 'source' ] == 'UPLOADED_CONTENT' :
url = f"""https://chat.googleapis.com/v1/media/ { attachment [ 'attachmentDataRef' ][ 'resourceName' ] } ?alt=media"""
downloader = msg . _extras . get ( 'downloader' )
content = downloader ( url )
if content != None :
d = BytesIO ()
d . write ( content )
# jira.add_attachment(issue=issue, attachment=d, filename=attachment['contentName'])
O código em markdownconverter.py
é de https://github.com/dr-beat/errbot-backend-hangoutschat. É licenciado pelo MIT.
Licenciado sob a licença BSD 3.