前提・実現したいこと
ここに質問の内容を詳しく書いてください。
Line API(Bot)開発において,対話相手からメッセージがあるとその内容をローカル(自分のPC)にあるテキストファイルに自動で書き込むシステム
なおwebhookを用いており,オウム返しの動作は下のURLのコードを参考にし,動作を確認した
https://note.com/consultant1221/n/n7084879ae345
発生している問題・エラーメッセージ
FileNotFoundError: [Errno 2] No such file or directory (当然オンライン上で動かしているプログラムなので,ローカルのpathを指定しても動かない)
該当のソースコード
Python
from flask import Flask, request, abort from linebot import ( LineBotApi, WebhookHandler ) from linebot.exceptions import ( InvalidSignatureError ) from linebot.models import ( FollowEvent, MessageEvent, TextMessage, TextSendMessage, ImageMessage, ImageSendMessage, TemplateSendMessage, ButtonsTemplate, PostbackTemplateAction, MessageTemplateAction, URITemplateAction ) import os # 軽量なウェブアプリケーションフレームワーク:Flask app = Flask(__name__) #環境変数からLINE Access Tokenを設定 LINE_CHANNEL_ACCESS_TOKEN = os.environ["LINE_CHANNEL_ACCESS_TOKEN"] #環境変数からLINE Channel Secretを設定 LINE_CHANNEL_SECRET = os.environ["LINE_CHANNEL_SECRET"] line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN) handler = WebhookHandler(LINE_CHANNEL_SECRET) @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: abort(400) return 'OK' # MessageEvent @handler.add(MessageEvent, message=TextMessage) def handle_message(event): f = open('自分のローカルのテキストファイルのパス', 'w') f.write(event.message.text) f.close() line_bot_api.reply_message ( event.reply_token, TextSendMessage(text=event.message.text) ) if __name__ == "__main__": port = int(os.getenv("PORT")) app.run(host="0.0.0.0", port=port)
試したこと
・オンライン上でローカルのファイルにアクセス(file open)を使う方法を調べたが,見つからなかった.
・ネットワークパスについて調べたが,実現したいことに繋がるかわからなかった.
→そもそもセキュリティの都合上オンライン上から自分のテキストファイルに遠隔で書き込むことができない可能性も考えているのですが,知識が浅いため,それができないという知識(理由など)もないので,お手数だとは思いますが,教えていただけると幸いです.
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
まだ回答がついていません
会員登録して回答してみよう