##はじめに
A3RTの便利なAPIを使わせて頂き、HerokuとPythonで
LINEで文章を送ると校閲をして返してくれるBotを作りました
学習中の身ですので変な部分や間違い等あるかもしれません
よろしければご指摘頂けると幸いです
環境
Windows 10
Python 3.7.3
Flask 0.12.2
line-bot-sdk 1.6.0
##前提
Line developers登録済
Heroku連携でオウム返しが出来る状態
##コード
イベント部分のみです
import json
import requests
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
talk_key = "" # TalkAPIのAPIKEY
proof_key = "" #ProofreadingのAPIKEY
push_text = event.message.text
if u"校閲して" in push_text:#校閲する場合の処理
proof_push = push_text.replace('校閲して', '')
proof_endpoint = "https://api.a3rt.recruit-tech.co.jp/proofreading/v2/typo"
params = {'apikey': proof_key,'sentence':proof_push}
r = requests.get(proof_endpoint,params)
data = json.loads(r.text)
reply_text = data["checkedSentence"]
else:#校閲しない場合(雑談)の処理
endpoint = "https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk"
params = {'apikey': talk_key,'query':push_text}
r = requests.get(endpoint,params)
data = json.loads(r.text)
reply_text = data['results'][0]['reply']
line_bot_api.reply_message(event.reply_token,TextSendMessage(text=reply_text))
TalkAPIは雑談用、ProofreadingAPIは校閲用で
どちらもA3RTのプロダクトですが別のAPIKEYが必要です
https://a3rt.recruit-tech.co.jp/product/
こちらでメールアドレスのみで取得できます
受け取った文字列を校閲か雑談で分岐後、
校閲の場合はその旨のみ文字列から削除し、APIへリクエストします
戻ってきたデータから必要なもの(checkedSentenceやreply)を
取り出してreply_textとしてLINEbotへ返します
デプロイやオウム返しBOTの作成についてはいい記事が
沢山ありますのでそちらをご参照ください
以下、私が参考にした記事です
##参考記事
https://miyabi-lab.space/blog/21
https://qiita.com/kro/items/67f7510b36945eb9689b
https://qiita.com/suigin/items/0deb9451f45e351acf92