errbot (https://errbot.io)의 Google 행 아웃 채팅 (https://chat.google.com)의 백엔드입니다.
Errbot을 사용하여 봇을 만들 수 있지만 항상 그렇듯이 진행중인 작업입니다.
git clone https://github.com/cloudflare/GHC-Errbot
그런 다음
BACKEND = 'Google-Hangouts-Chat'
BOT_EXTRA_BACKEND_DIR = '/path/to/where/you/cloned/the/repo/'
config.py에
GCE 프로젝트에서 Google Pub/Sub 주제를 만듭니다
해당 주제에 대한 가입자를 만들고 봇 계정 가입자 권한 부여
봇에 대한 Creds.json을 생성하십시오
errbot init
로 응용 프로그램을 작성한 다음 다음 정보를 사용하여 config.py에서 BOT_IDENTITY
블록을 만듭니다.
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>',
}
언급 ( @
)을 포함하여 Bot_prefix를 봇 이름으로 설정하십시오.
(선택 사항) Prometheus 메트릭을 활성화하려면 Metrics_port를 정수로 설정하십시오. 이것은 메트릭을 위해 열고 싶은 포트가 될 것입니다.
이 백엔드는 메시지 이벤트에서 첨부 파일을 지원합니다. Google 채팅 업로드 첨부 파일을 다운로드하려면 GetAttachment API 및 HTTP GET 요청을 Bearer 인증 과 함께 사용해야합니다. 백엔드가 이미 인증되었으므로 메시지 컨텍스트와 함께 즉시 사용 가능한 다운로더 객체를 기회로 제공하므로 Errbot 플러그인은 추가 단계를 수행 할 필요없이 첨부 파일을 직접 다운로드 할 수 있습니다.
다음은 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'])
markdownconverter.py
의 코드는 https://github.com/drbot/errbot-backend-hangoutschat에서입니다. MIT 라이센스가 있습니다.
BSD 3 라이센스에 따라 라이센스.