Dies ist ein Backend für Google Hangouts Chat (https://chat.google.com) für Errbot (https://errbot.io).
Sie können Errbot verwenden, um Bots zu erstellen, aber wie immer handelt es sich um eine laufende Arbeit.
git clone https://github.com/cloudflare/GHC-Errbot
und dann
BACKEND = 'Google-Hangouts-Chat'
BOT_EXTRA_BACKEND_DIR = '/path/to/where/you/cloned/the/repo/'
an Ihre config.py
Erstellen Sie in einem GCE -Projekt ein Google Pub/Sub -Thema
Erstellen Sie einen Abonnenten zu diesem Thema und gewähren Sie Ihren BOT -Konto -Abonnentenberechtigungen
Generieren Sie ein Cred.json für Ihren Bot
Erstellen Sie eine Anwendung mit errbot init
und erstellen Sie dann einen BOT_IDENTITY
-Block in Ihrer config.py mit den folgenden Informationen:
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>',
}
Setzen Sie Bot_Prefix auf den Namen des Bots, einschließlich der Erwähnung ( @
)
(Optional) Setzen Sie Metrics_port auf eine Ganzzahl, um Prometheus -Metriken zu aktivieren. Dies ist der Port, den Sie für Metriken öffnen möchten.
Dieses Backend unterstützt Anhänge in Nachrichtenereignissen. Um einen Google -Chat -Upload -Anhang herunterzuladen, müssen wir die Getattachment -API und die HTTP -GET -Anforderung mit Bearer -Authentifizierung verwenden. Da das Backend bereits authentifiziert ist, geben wir mit dem Nachrichtenkontext opportunistisch ein dowerfachempfindliches Downloader -Objekt an, sodass ERRBOT-Plugins die Anhänge direkt herunterladen können, ohne zusätzliche Schritte erforderlich.
Hier ist ein Code -Beispiel, wie Sie den Downloader -Helfer in einem Errbot -Plugin verwenden:
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'])
Der Code in markdownconverter.py
stammt von https://github.com/dr-beat/errbot-backend-hangoutschat. Es ist MIT lizenziert.
Lizenziert unter der BSD 3 -Lizenz.