Ini adalah backend untuk obrolan Google Hangouts (https://chat.google.com) untuk errbot (https://errbot.io).
Ini memungkinkan Anda untuk menggunakan Errbot untuk membuat bot, tetapi seperti biasa, ini adalah pekerjaan yang sedang berlangsung.
git clone https://github.com/cloudflare/GHC-Errbot
kemudian
BACKEND = 'Google-Hangouts-Chat'
BOT_EXTRA_BACKEND_DIR = '/path/to/where/you/cloned/the/repo/'
ke config.py Anda
Buat Google Pub/Sub Topik dalam Proyek GCE
Buat pelanggan tentang topik itu dan berikan izin pelanggan akun bot Anda
Menghasilkan kredo untuk bot Anda
Buat aplikasi dengan errbot init
, dan kemudian buat blok BOT_IDENTITY
di config.py Anda dengan informasi berikut:
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>',
}
Atur bot_prefix ke nama bot, termasuk sebutan ( @
)
(Opsional) Untuk mengaktifkan metrik Prometheus, atur metrics_port ke integer. Ini akan menjadi port yang ingin Anda buka untuk metrik.
Backend ini mendukung lampiran dalam acara pesan. Untuk mengunduh lampiran unggahan Google Chat, kita perlu menggunakan API GetAttachment dan HTTP Get permintaan dengan otentikasi pembawa . Karena backend sudah diautentikasi, kami secara oportunistik menyediakan objek pengunduh yang siap digunakan dengan konteks pesan, sehingga plugin Errbot dapat menggunakannya untuk langsung mengunduh lampiran, tidak ada langkah tambahan yang diperlukan.
Berikut contoh kode tentang cara menggunakan penolong pengunduh di 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'])
Kode di markdownconverter.py
berasal dari https://github.com/dr-beat/errbot-backend-hangoutschat. Ini berlisensi MIT.
Berlisensi di bawah lisensi BSD 3.