파이썬에서 앵무새를 반환하는 Linebot 오류 대응
9239 단어 LINEmessagingAPI경 6Python3Git
소개
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
그리고 치면 다음 파일이 생성됩니다.
Procfileweb: python main.py
이것을 주의하는 데 몇 시간이 걸렸는가? . .
그런 다음 requirements
이것은 requirements.txt입니다.
텍스트 편집기에서 다음과 같이 만듭니다.
requirements.txtFlask==1.1.1
line-bot-sdk==1.15.0
마지막으로 런타임
이것도 runtime.txt입니다.
텍스트 편집기에서 다음과 같이 만듭니다.
runtime.txtpython-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
를 입력하면 오류를 피할 수 있습니다.
총괄
오류와 관련하여 파일을 준비하는 단계에서 오타가 거의 없었습니다.
파일을 준비할 때는 세심한 주의를 기울여 대문자 소문자 등의 철자 오류에 주의하여 준비하십시오.
첫 게시물에 흥분했지만
끝까지 읽어 주셔서 감사합니다.
좀 더 제대로 써야 했다.
이 기사가 조금이라도 누군가의 도움이되면 다행입니다.
Reference
이 문제에 관하여(파이썬에서 앵무새를 반환하는 Linebot 오류 대응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takuya0125/items/36bdea94c249f592a59f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
그리고 치면 다음 파일이 생성됩니다.
Procfileweb: python main.py
이것을 주의하는 데 몇 시간이 걸렸는가? . .
그런 다음 requirements
이것은 requirements.txt입니다.
텍스트 편집기에서 다음과 같이 만듭니다.
requirements.txtFlask==1.1.1
line-bot-sdk==1.15.0
마지막으로 런타임
이것도 runtime.txt입니다.
텍스트 편집기에서 다음과 같이 만듭니다.
runtime.txtpython-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
를 입력하면 오류를 피할 수 있습니다.
총괄
오류와 관련하여 파일을 준비하는 단계에서 오타가 거의 없었습니다.
파일을 준비할 때는 세심한 주의를 기울여 대문자 소문자 등의 철자 오류에 주의하여 준비하십시오.
첫 게시물에 흥분했지만
끝까지 읽어 주셔서 감사합니다.
좀 더 제대로 써야 했다.
이 기사가 조금이라도 누군가의 도움이되면 다행입니다.
Reference
이 문제에 관하여(파이썬에서 앵무새를 반환하는 Linebot 오류 대응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takuya0125/items/36bdea94c249f592a59f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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)
$ echo web: python main.py > Procfile
web: python main.py
Flask==1.1.1
line-bot-sdk==1.15.0
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
를 입력하면 오류를 피할 수 있습니다.
총괄
오류와 관련하여 파일을 준비하는 단계에서 오타가 거의 없었습니다.
파일을 준비할 때는 세심한 주의를 기울여 대문자 소문자 등의 철자 오류에 주의하여 준비하십시오.
첫 게시물에 흥분했지만
끝까지 읽어 주셔서 감사합니다.
좀 더 제대로 써야 했다.
이 기사가 조금이라도 누군가의 도움이되면 다행입니다.
Reference
이 문제에 관하여(파이썬에서 앵무새를 반환하는 Linebot 오류 대응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takuya0125/items/36bdea94c249f592a59f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
오류와 관련하여 파일을 준비하는 단계에서 오타가 거의 없었습니다.
파일을 준비할 때는 세심한 주의를 기울여 대문자 소문자 등의 철자 오류에 주의하여 준비하십시오.
첫 게시물에 흥분했지만
끝까지 읽어 주셔서 감사합니다.
좀 더 제대로 써야 했다.
이 기사가 조금이라도 누군가의 도움이되면 다행입니다.
Reference
이 문제에 관하여(파이썬에서 앵무새를 반환하는 Linebot 오류 대응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takuya0125/items/36bdea94c249f592a59f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)