Récemment, j'ai voulu faire un linebot de lance. Aussi, je voulais vraiment le faire avec python!
Téléchargez le serveur développé avec flask dans l'environnement anaconda sur heroku J'ai essayé de créer LINE BOT avec Python en utilisant l'API LINE BOT
Les trois suivants sont fabriqués avec du rubis en détail par mes amis, alors jetez un œil. LINE BOT m'a donné un dépliant (1) ~ Édition de retour Omu LINE BOT m'a donné un dépliant (2) ~ édition PUSH LINE BOT m'a donné un dépliant (3) jusqu'à la fin
Je veux arriver au point où je peux le retourner!
conda-requirements.txt
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: osx-64
flask=0.10.1=py35_1
gunicorn=19.1.0=py35_0
itsdangerous=0.24=py35_0
jinja2=2.8=py35_0
markupsafe=0.23=py35_0
openssl=1.0.2h=0
pastedeploy=1.5.2=py35_1
pip=8.1.1=py35_1
python=3.5.1=0
readline=6.2=2
setuptools=20.7.0=py35_0
sqlite=3.9.2=0
tk=8.5.18=0
werkzeug=0.11.9=py35_0
wheel=0.29.0=py35_0
xz=5.0.5=1
zlib=1.2.8=0
runtime.txt
python-3.5.1
from flask import Flask
from flask import request
import os
import requests
import json
import re
LINEBOT_API_EVENT ='https://trialbot-api.line.me/v1/events'
LINE_HEADERS = {
'Content-type': 'application/json; charset=UTF-8',
'X-Line-ChannelID':os.environ['CONTENT'], # Channel ID
'X-Line-ChannelSecret':os.environ['CHANNEL'], # Channel secre
'X-Line-Trusted-User-With-ACL':os.environ['MID'] # MID (of Channel)
}
#proxies = {'https': os.environ['PROXIES']}
proxies = {'http': os.environ.get('FIXIE_URL', ''), 'https': os.environ.get('FIXIE_URL', '')}
def post_event( to, content):
msg = {
'to': [to],
'toChannel': 1383378250, # Fixed value
'eventType': "138311608800106203", # Fixed value
'content': content
}
print(msg)
r = requests.post(LINEBOT_API_EVENT, headers=LINE_HEADERS, data=json.dumps(msg),proxies = proxies)
def post_text( to, text ):
content = {
'contentType':1,
'toType':1,
'text':text,
}
post_event(to, content)
app = Flask(__name__)
@app.route("/callback", methods=['POST'])
def hello():
msgs = request.json['result']
for msg in msgs:
text = msg['content']['text']
print(text)
post_text(msg['content']['from'],text)
return ''
if __name__ == "__main__":
app.run()
Avant de donner cet article, je suis allé au code de l'étape suivante, donc il peut y avoir des choses supplémentaires lorsque je retourne le code, mais je suis désolé. channelID etc. sont stockés en tant que variables d'environnement heroku.
Recommended Posts