Ceci est un backend pour Google Hangouts Chat (https://chat.google.com) pour errbot (https://errbot.io).
Il vous permet d'utiliser Errbot pour créer des bots, mais comme toujours, c'est un travail en cours.
git clone https://github.com/cloudflare/GHC-Errbot
et puis
BACKEND = 'Google-Hangouts-Chat'
BOT_EXTRA_BACKEND_DIR = '/path/to/where/you/cloned/the/repo/'
à votre config.py
Créer un sujet Google Pub / Sub dans un projet GCE
Créez un abonné sur ce sujet et accordez les autorisations des abonnés de votre compte Bot
Générer un créns.json pour votre bot
Créez une application avec errbot init
, puis créez un bloc BOT_IDENTITY
dans votre configypie avec les informations suivantes:
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>',
}
Définissez Bot_Prefix sur le nom du bot, y compris la mention ( @
)
(Facultatif) pour activer les métriques Prometheus, définissez Metrics_port sur un entier. Ce sera le port que vous souhaitez ouvrir pour les mesures.
Ce backend prend en charge les pièces jointes dans les événements de message. Pour télécharger une pièce jointe Google Chat Téléchargement, nous devons utiliser l'API GetAttachment et la demande HTTP GET avec l'authentification du porteur . Étant donné que le backend est déjà authentifié, nous fournissons de manière opportuniste un objet de téléchargeur prêt à l'emploi avec le contexte du message, afin que les plugins Errbot puissent l'utiliser pour télécharger directement les pièces jointes, aucune étape supplémentaire requise.
Voici un exemple de code sur la façon d'utiliser le téléchargeur Helper dans un plugin 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'])
Le code de markdownconverter.py
provient de https://github.com/dr-beat/errbot-backend-hangoutschat. Il est sous licence du MIT.
Licencié sous la licence BSD 3.