質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

解決済

linebot コードの反映

aoi68
aoi68

総合スコア9

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

2回答

0評価

0クリップ

179閲覧

投稿2021/07/27 04:21

編集2021/07/27 04:39

linebotについて質問です。

linebotの作り方 for youtube

この方の動画を参考にしてlinebotを作り、無事に完成したのですが、自分で改良する際に、vscodeのコードを変えても変更されませんでした。どうすれば変更した部分が反映されるのでしょうか。

python

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("/") def test(): return "OK" @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' from time import time users = {} @handler.add(MessageEvent, message=TextMessage) def handle_message(event): userId = event.source.user_id if event.message.text == "勉強開始": reply_message = "計測を開始しました。" if not userId in users: users[userId] = {} users[userId]["total"] = 0 users[userId]["start"] = time() else: end = time() difference = int(end - users[userId]["start"]) users[userId]["total"] += difference hour = difference // 3600 minute = (difference % 3600) // 60 second = difference % 60 reply_message = f"勉強時間は{hour}時間{minute}{second}秒です。お疲れ様でした!合計で{users[userId]['total']}秒勉強しています。" line_bot_api.reply_message( event.reply_token, TextSendMessage(text=reply_message)) if __name__ == "__main__": app.run()

requirements.txt

certifi==2021.5.30 charset-normalizer==2.0.3 click==8.0.1 Flask==2.0.1 future==0.18.2 gunicorn==20.1.0 idna==3.2 itsdangerous==2.0.1 Jinja2==3.0.1 line-bot-sdk==1.19.0 MarkupSafe==2.0.1 requests==2.26.0 urllib3==1.26.6 Werkzeug==2.0.1

procfile

web: gunicorn app:app --log-file -

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

aoi68

2021/07/27 04:27

マルチポストという行為がダメだということを知りませんでした。知恵袋の投稿は削除いたします。
K_3578

2021/07/27 04:32 編集

何をどう変えたのかこちらにはわからないのでとりあえずソースコード提示するところからですね。 (動画貼られても見るの面倒なので私は見てません)
aoi68

2021/07/27 04:36

ソースコード提示しました。よろしくお願い致します。reply_messageに格納されている「勉強時間は」の「は」の文字を消しました。
K_3578

2021/07/27 04:39 編集

文字列消しただけで反映されてないならファイルそもそも保存されてないとか? あと、f"勉強時間は…ってなってますけどこの"f"は意図した物ですか?
aoi68

2021/07/27 04:44

vscodeで作っていて、ファイルは常に自動保存になっているためそれはないかと思います。 fに関しましては私もよくわからないのですが、動画では「エフストリング」と言っていました。意味はあると思います。
K_3578

2021/07/27 04:50 編集

一応確認だけはしておいてください。自動保存が機能していない可能性もなくはないので。 f文字列の事だと思うんですけど、私Pythonはメインでやってないのでそこまで詳しくないので 見当違いの指摘だったかもしれません、
aoi68

2021/07/27 04:58

ファイル名の右に白い丸が無い為、やはり保存自体はされていると思います。制作の最後の方で、herokuという、サーバーを借りられる?サービスを使ったのですが、もしかしたらherokuの方で何か保存的なことをすれば反映されるかもしれません。少しherokuについて調べてみたいと思います。
K_3578

2021/07/27 05:09

VScodeで書いてあるのはあくまでローカル上で書いてるものなので、 herokuに上げた物を動かしているなら合わせて更新してあげないとダメですね。
aoi68

2021/07/27 05:10

解決いたしました。予想通り、herokuで保存的なことをしなければ反映されないらしく、herokuをいじった結果、無事に反映されました。この保存みたいな操作のことを「デプロイ」というみたいです。一緒に解決策を考えてくださりありがとうございました。
K_3578

2021/07/27 05:13

一応自分で解決されたようなので自己解決でクローズしておいていただければ。 同様の問題に当たった人のために解決に至った方法を書いておいてくださるとナレッジとして役立ちます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。