🐥
esa で記事の定期投稿を自動化するためにやったこと
ドキュメントとしてesaを使っているんですが,定期ミーティングの議事録を作って Slack の関係者に通知しています.定期的に作るので議事録の内容をテンプレート化し,議事録作成は指定時間に投稿する仕組みを作りたいということでやってみました.
esa の API
esa の API は下記で公開されてます.この API を使ってコードを書きました.
実際のコード例
コードは Python 3.9 のバージョンで作ってます.
import requests
from requests.auth import AuthBase
import json
import slackweb
import datetime
TOKEN = 'esaのトークン'
TEAM_NAME = 'チーム名'
session = requests.session()
session.headers['Authorization'] = 'Bearer {}'.format(TOKEN)
session.headers['Content-Type'] = 'application/json'
api_endpoint = 'https://api.esa.io'
body = dict(
post=dict(
category='議事録を作るパス',
template_post_id=xxx,
wip=False)
)
response = session.post('{}/v1/teams/{}/posts'.format(api_endpoint, TEAM_NAME), data=json.dumps(body).encode('utf-8'))
json_result = response.json()
esa_url = json_result['url']
slack=slackweb.Slack(url="https:/incoming webhook の URL")
member = ['xxx', 'xxx', 'xxx'] # メンションの ID
mention_list = []
for i in member:
mention_list.append("<@" + i + ">")
mention_str = map(str, mention_list)
mention_name = ' '.join(mention_str)
slack.notify(text=mention_name + "今週の議事録です\n" + esa_url, channel="#投稿のチャンネル", username="議事録通知bot", icon_emoji=":esa:", mrkdwn=True)
投稿された内容
こんな感じでポストされます.これで毎週議事録を作る手間が省けました.
Discussion