from flask import Flask, request, abort
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(__name__)
line_bot_api = LineBotApi('')
handler = WebhookHandler('')
@app.route("/callback", methods=['POST'])
def callback():
# get X-Line-Signature header value
signature = request.headers['X-Line-Signature']
# get request body as text
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
# handle webhook body
try:
handler.handle(body, signature)
except InvalidSignatureError:
print("Invalid signature. Please check your channel access token/channel secret.")
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text))
'''
當用戶發照片的時候,將用戶照片從line上下載回來,存到本地端
line_bot_api get content python
'''
from linebot.models import ImageMessage
import boto3
@handler.add(MessageEvent,message=ImageMessage)
def handle_image_message(event):
# 麻煩line_bot_api去跟line要照片回來,並且存回本地端
message_content = line_bot_api.get_message_content(event.message.id)
file_name= event.message.id +'.jpg'
with open(file_name, 'wb') as fd:
for chunk in message_content.iter_content():
fd.write(chunk)
'''
用python的套件boto3將圖片上傳到S3
python boto3 upload object to s3
'''
s3_client= boto3.client('s3')
# s3_client.upload_file(file_name, bucket, object_name)
s3_client.upload_file(file_name,'iii-tutorial-v2','student99/'+file_name)
'''
未來做圖片分析
'''
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text="已收到圖片"))
if __name__ == "__main__":
app.run('0.0.0.0',port=28888)
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}