Este es un backend para el chat de Google Hangouts (https://chat.google.com) para errbot (https://errbot.io).
Le permite usar ERRBOT para crear bots, pero como siempre, es un trabajo en progreso.
git clone https://github.com/cloudflare/GHC-Errbot
y luego
BACKEND = 'Google-Hangouts-Chat'
BOT_EXTRA_BACKEND_DIR = '/path/to/where/you/cloned/the/repo/'
a tu config.py
Cree un tema de pub/sub Google en un proyecto GCE
Cree un suscriptor sobre ese tema y otorgue sus permisos de suscriptores de cuenta BOT
Genere un credimiento. Json para su bot
Cree una aplicación con errbot init
y luego cree un bloque BOT_IDENTITY
en su config.py con la siguiente información:
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>',
}
Establezca bot_prefix al nombre del bot, incluida la mención ( @
)
(Opcional) Para habilitar las métricas Prometheus, establecer METRICS_PORT en un entero. Este será el puerto que desea abrir para métricas.
Este backend admite archivos adjuntos en eventos de mensajes. Para descargar un archivo adjunto de carga de chat de Google, necesitamos utilizar la API GetAttachment y la solicitud de obtención de HTTP con la autenticación del portador . Dado que el backend ya está autenticado, proporcionamos de manera oportunista un objeto descargador listo para usar con el contexto del mensaje, para que los complementos de ERRBOT puedan usarlo para descargar directamente los archivos adjuntos, no se requieren pasos adicionales.
Aquí hay un ejemplo de código sobre cómo usar el ayudante de descarga en un complemento 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'])
El código en markdownconverter.py
es de https://github.com/dr-beat/errbot-backend-hangoutschat. Tiene licencia MIT.
Con licencia bajo la licencia BSD 3.