파이썬에서 앵무새를 반환하는 Linebot 오류 대응

소개



Qiita나 WEB상에는, 앵무새 반환 Linebot의 만드는 방법은, 많이 있습니다.

참고
htps : // m/k 여//ms/67f7510b36945에 b9689b
htps //w w. 가 sぇ y 곤스 l 친 g. 이. jp/bぉg/엔기네 r/3028/

이것들을 참고로 진행하면, 기본 작성 완료합니다만,
Heroku를 배포할 때마다 오류가 발생했으며 초보자이기 때문에 오류 해결이 상당히 어려웠습니다.
그래서 내가 만난 오류에 대한 대처법을 설명합니다.

개발 환경



OS: Widows10
Python3.7.6
Flask1.1.1
line-bot-sdk1.15.0

준비할 파일 그룹



우선 main.py
사이트에 실려 있는 코피페로 상관없다고 생각합니다.
특히 다시 쓰기는 필요 없어졌습니다.

main.py

from flask import Flask, request, abort

from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    MessageEvent, TextMessage, TextSendMessage,
)
import os

app = Flask(__name__)
app.debug = False

YOUR_CHANNEL_ACCESS_TOKEN = os.environ["YOUR_CHANNEL_ACCESS_TOKEN"]
YOUR_CHANNEL_SECRET = os.environ["YOUR_CHANNEL_SECRET"]

line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_CHANNEL_SECRET)

@app.route("/callback", methods=['POST'])
def callback():
    signature = request.headers['X-Line-Signature']

    body = request.get_data(as_text=True)
    app.logger.info("Request body: " + body)

    try:
        handler.handle(body, signature)
    except InvalidSignatureError:
        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))

if __name__ == "__main__":
    port = int(os.getenv("PORT"))
    app.run(host="0.0.0.0", port=port)

그런 다음 Procfile
여기서 꽤 시간을 먹어 버렸습니다.
첫째, Procfile은 Procfile.txt가 좋지 않으며 확장자를 붙이지 않습니다.
평소 텍스트 편집기를 사용하는 사람은 아래 코드를 치고 txt 파일로 저장하기 쉽습니다.

만드는 방법은 터미널을 열고,
$ echo web: python main.py > Procfile

그리고 치면 다음 파일이 생성됩니다.

Procfile
web: python main.py

이것을 주의하는 데 몇 시간이 걸렸는가? . .

그런 다음 requirements
이것은 requirements.txt입니다.
텍스트 편집기에서 다음과 같이 만듭니다.

requirements.txt
Flask==1.1.1
line-bot-sdk==1.15.0

마지막으로 런타임
이것도 runtime.txt입니다.
텍스트 편집기에서 다음과 같이 만듭니다.

runtime.txt
python-3.7.6

이러한 파일을 하나의 폴더에 넣으면 준비가 완료됩니다.

배포



LinemessagingAPI, Heroku, Git의 설치나 등록 등은 생략합니다.

터미널을 열고 방금 전 파일 그룹이 있는 폴더로 이동합니다.
이번에는 line_bot이라는 폴더를 만들었습니다.
$cd C:\Users\user\line_bot

배포합니다.
$ git init
$ git add .
$ git commit -m "new commit"
$ git push heroku master

오류 정보


fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

제 경우에는 액세스 토큰과 채널 비밀 입력이 잘못되었기 때문에 다음을 수행하십시오.
$ heroku config:set YOUR_CHANNEL_ACCESS_TOKEN="アクセストークンの欄の文字列" --app アプリケーション名
$ heroku config:set YOUR_CHANNEL_SECRET="Channel Secretの欄の文字列" --app アプリケーション名
Setting YOUR_CHANNEL_ACCESS_TOKEN and restarting ⬢ アプリケーション名... done, v13
YOUR_CHANNEL_ACCESS_TOKEN:
アクセストークンの欄の文字列

이렇게 표시되면 등록되어 있습니다.

둘째,
Scaling dynos... !
 !    Couldn't find that process type (web).

이 경우,
heroku ps:scale web=1

를 입력하면 오류를 피할 수 있습니다.



총괄



오류와 관련하여 파일을 준비하는 단계에서 오타가 거의 없었습니다.
파일을 준비할 때는 세심한 주의를 기울여 대문자 소문자 등의 철자 오류에 주의하여 준비하십시오.

첫 게시물에 흥분했지만
끝까지 읽어 주셔서 감사합니다.
좀 더 제대로 써야 했다.

이 기사가 조금이라도 누군가의 도움이되면 다행입니다.

좋은 웹페이지 즐겨찾기