[Python]LineBot 만들기
소개
Heroku와 Python을 사용하여 되돌아 오는 LINE BOT을 만드는 방법을 요약했습니다.
환경
macOS Mojava
사전 준비
Line Developer 계정 등록
Heroku 계정 등록
Homebrew 설치
Line Developer 측 설정
채널 만들기
・채널의 종류는 「Messaging API」를 선택.
· 채널명, 채널 설명 등을 입력하여 작성합니다.
채널 비밀, 채널 액세스 토큰을 확인합니다.
· lineBot 작성에 필요합니다.
· [채널 기본 설정] - [채널 비밀]
· [Message API 설정] - [채널 액세스 토큰]
LINEBOT 만들기
다음 파일을 만듭니다.
[폴더]
├ main.py (실행할 프로그램)
├ Procfile (프로그램 실행 방법)
├ requirements.txt (설치할 라이브러리)
├ runtime.txt (Python 버전)
main.py는 line-bot-sdk-python을 기반으로 만듭니다.
main.pyfrom flask import Flask, request, abort
import os
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(__name__)
#環境変数取得
LINE_CHANNEL_ACCESS_TOKEN = os.environ["LINE_CHANNEL_ACCESS_TOKEN"]
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'
@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__":
# app.run()
port = int(os.getenv("PORT"))
app.run(host="0.0.0.0", port=port)
Procfile# Procfile
web: python main.py
requirements.txtFlask==0.12.2
line-bot-sdk==1.5.0
runtime.txtpython-3.6.6
Heroku에 배포
Heroku에 앱을 만들고 만든 파일을 배포합니다.
또한 LINE의 채널 비밀, 채널 액세스 토큰을 환경 변수로 설정합니다.
Heroku를 설치합니다.
brew tap heroku/brew && brew install heroku
Heroku에 로그인합니다.
heroku login
만든 파일이 있는 폴더로 이동하여 새 앱을 만듭니다.
heroku create アプリ名
만든 파일을 Heroku에 배포합니다.
git add .
git commit -m 'First commit'
git push heroku master
Line Developer에서 만든 채널의 채널 비밀, 채널 액세스 토큰을 Heroku 환경 변수로 설정합니다.
heroku config:add LINE_CHANNEL_ACCESS_TOKEN=チャネルアクセストークン --app googlecalendar-webhook
heroku config:add LINE_CHANNEL_SECRET=チャネルシークレット --app googlecalendar-webhook
WebHouck 설정
Line에서 메시지를 Heroku에서 수신할 수 있도록 WebHock을 구성합니다.
Line Developer 채널에서 WebHock 및 응답 메시지를 설정합니다.
メッセージを受け取った時に、WebHockを使用するように
[LINE公式アカウント機能]-[応答メッセージ]-[編集]から応答設定を変更します。
실행
メッセージを送信して同じメッセージが返されたら成功です。
メッセージが返ってこない場合
heroku logs --tail
で、Herokuのログでエラー等が出ているか確認すればいいです。
PUSH 메시지 전송
Herokuから直接Lineにメッセージを送ることができます。
PUSHメッセージはユーザIDを指定することで送信できます。
line_bot_api.push_message(
ユーザID,
TextSendMessage(text=メッセージ))
참고
Reference
이 문제에 관하여([Python]LineBot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/eito_2/items/7de2aca039f28f15e393
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
macOS Mojava
사전 준비
Line Developer 계정 등록
Heroku 계정 등록
Homebrew 설치
Line Developer 측 설정
채널 만들기
・채널의 종류는 「Messaging API」를 선택.
· 채널명, 채널 설명 등을 입력하여 작성합니다.
채널 비밀, 채널 액세스 토큰을 확인합니다.
· lineBot 작성에 필요합니다.
· [채널 기본 설정] - [채널 비밀]
· [Message API 설정] - [채널 액세스 토큰]
LINEBOT 만들기
다음 파일을 만듭니다.
[폴더]
├ main.py (실행할 프로그램)
├ Procfile (프로그램 실행 방법)
├ requirements.txt (설치할 라이브러리)
├ runtime.txt (Python 버전)
main.py는 line-bot-sdk-python을 기반으로 만듭니다.
main.pyfrom flask import Flask, request, abort
import os
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(__name__)
#環境変数取得
LINE_CHANNEL_ACCESS_TOKEN = os.environ["LINE_CHANNEL_ACCESS_TOKEN"]
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'
@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__":
# app.run()
port = int(os.getenv("PORT"))
app.run(host="0.0.0.0", port=port)
Procfile# Procfile
web: python main.py
requirements.txtFlask==0.12.2
line-bot-sdk==1.5.0
runtime.txtpython-3.6.6
Heroku에 배포
Heroku에 앱을 만들고 만든 파일을 배포합니다.
또한 LINE의 채널 비밀, 채널 액세스 토큰을 환경 변수로 설정합니다.
Heroku를 설치합니다.
brew tap heroku/brew && brew install heroku
Heroku에 로그인합니다.
heroku login
만든 파일이 있는 폴더로 이동하여 새 앱을 만듭니다.
heroku create アプリ名
만든 파일을 Heroku에 배포합니다.
git add .
git commit -m 'First commit'
git push heroku master
Line Developer에서 만든 채널의 채널 비밀, 채널 액세스 토큰을 Heroku 환경 변수로 설정합니다.
heroku config:add LINE_CHANNEL_ACCESS_TOKEN=チャネルアクセストークン --app googlecalendar-webhook
heroku config:add LINE_CHANNEL_SECRET=チャネルシークレット --app googlecalendar-webhook
WebHouck 설정
Line에서 메시지를 Heroku에서 수신할 수 있도록 WebHock을 구성합니다.
Line Developer 채널에서 WebHock 및 응답 메시지를 설정합니다.
メッセージを受け取った時に、WebHockを使用するように
[LINE公式アカウント機能]-[応答メッセージ]-[編集]から応答設定を変更します。
실행
メッセージを送信して同じメッセージが返されたら成功です。
メッセージが返ってこない場合
heroku logs --tail
で、Herokuのログでエラー等が出ているか確認すればいいです。
PUSH 메시지 전송
Herokuから直接Lineにメッセージを送ることができます。
PUSHメッセージはユーザIDを指定することで送信できます。
line_bot_api.push_message(
ユーザID,
TextSendMessage(text=メッセージ))
참고
Reference
이 문제에 관하여([Python]LineBot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/eito_2/items/7de2aca039f28f15e393
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
채널 만들기
・채널의 종류는 「Messaging API」를 선택.
· 채널명, 채널 설명 등을 입력하여 작성합니다.
채널 비밀, 채널 액세스 토큰을 확인합니다.
· lineBot 작성에 필요합니다.
· [채널 기본 설정] - [채널 비밀]
· [Message API 설정] - [채널 액세스 토큰]
LINEBOT 만들기
다음 파일을 만듭니다.
[폴더]
├ main.py (실행할 프로그램)
├ Procfile (프로그램 실행 방법)
├ requirements.txt (설치할 라이브러리)
├ runtime.txt (Python 버전)
main.py는 line-bot-sdk-python을 기반으로 만듭니다.
main.pyfrom flask import Flask, request, abort
import os
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(__name__)
#環境変数取得
LINE_CHANNEL_ACCESS_TOKEN = os.environ["LINE_CHANNEL_ACCESS_TOKEN"]
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'
@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__":
# app.run()
port = int(os.getenv("PORT"))
app.run(host="0.0.0.0", port=port)
Procfile# Procfile
web: python main.py
requirements.txtFlask==0.12.2
line-bot-sdk==1.5.0
runtime.txtpython-3.6.6
Heroku에 배포
Heroku에 앱을 만들고 만든 파일을 배포합니다.
또한 LINE의 채널 비밀, 채널 액세스 토큰을 환경 변수로 설정합니다.
Heroku를 설치합니다.
brew tap heroku/brew && brew install heroku
Heroku에 로그인합니다.
heroku login
만든 파일이 있는 폴더로 이동하여 새 앱을 만듭니다.
heroku create アプリ名
만든 파일을 Heroku에 배포합니다.
git add .
git commit -m 'First commit'
git push heroku master
Line Developer에서 만든 채널의 채널 비밀, 채널 액세스 토큰을 Heroku 환경 변수로 설정합니다.
heroku config:add LINE_CHANNEL_ACCESS_TOKEN=チャネルアクセストークン --app googlecalendar-webhook
heroku config:add LINE_CHANNEL_SECRET=チャネルシークレット --app googlecalendar-webhook
WebHouck 설정
Line에서 메시지를 Heroku에서 수신할 수 있도록 WebHock을 구성합니다.
Line Developer 채널에서 WebHock 및 응답 메시지를 설정합니다.
メッセージを受け取った時に、WebHockを使用するように
[LINE公式アカウント機能]-[応答メッセージ]-[編集]から応答設定を変更します。
실행
メッセージを送信して同じメッセージが返されたら成功です。
メッセージが返ってこない場合
heroku logs --tail
で、Herokuのログでエラー等が出ているか確認すればいいです。
PUSH 메시지 전송
Herokuから直接Lineにメッセージを送ることができます。
PUSHメッセージはユーザIDを指定することで送信できます。
line_bot_api.push_message(
ユーザID,
TextSendMessage(text=メッセージ))
참고
Reference
이 문제에 관하여([Python]LineBot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/eito_2/items/7de2aca039f28f15e393
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from flask import Flask, request, abort
import os
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(__name__)
#環境変数取得
LINE_CHANNEL_ACCESS_TOKEN = os.environ["LINE_CHANNEL_ACCESS_TOKEN"]
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'
@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__":
# app.run()
port = int(os.getenv("PORT"))
app.run(host="0.0.0.0", port=port)
# Procfile
web: python main.py
Flask==0.12.2
line-bot-sdk==1.5.0
python-3.6.6
Heroku에 앱을 만들고 만든 파일을 배포합니다.
또한 LINE의 채널 비밀, 채널 액세스 토큰을 환경 변수로 설정합니다.
Heroku를 설치합니다.
brew tap heroku/brew && brew install heroku
Heroku에 로그인합니다.
heroku login
만든 파일이 있는 폴더로 이동하여 새 앱을 만듭니다.
heroku create アプリ名
만든 파일을 Heroku에 배포합니다.
git add .
git commit -m 'First commit'
git push heroku master
Line Developer에서 만든 채널의 채널 비밀, 채널 액세스 토큰을 Heroku 환경 변수로 설정합니다.
heroku config:add LINE_CHANNEL_ACCESS_TOKEN=チャネルアクセストークン --app googlecalendar-webhook
heroku config:add LINE_CHANNEL_SECRET=チャネルシークレット --app googlecalendar-webhook
WebHouck 설정
Line에서 메시지를 Heroku에서 수신할 수 있도록 WebHock을 구성합니다.
Line Developer 채널에서 WebHock 및 응답 메시지를 설정합니다.
メッセージを受け取った時に、WebHockを使用するように
[LINE公式アカウント機能]-[応答メッセージ]-[編集]から応答設定を変更します。
실행
メッセージを送信して同じメッセージが返されたら成功です。
メッセージが返ってこない場合
heroku logs --tail
で、Herokuのログでエラー等が出ているか確認すればいいです。
PUSH 메시지 전송
Herokuから直接Lineにメッセージを送ることができます。
PUSHメッセージはユーザIDを指定することで送信できます。
line_bot_api.push_message(
ユーザID,
TextSendMessage(text=メッセージ))
참고
Reference
이 문제에 관하여([Python]LineBot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/eito_2/items/7de2aca039f28f15e393
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
メッセージを受け取った時に、WebHockを使用するように
[LINE公式アカウント機能]-[応答メッセージ]-[編集]から応答設定を変更します。
실행
メッセージを送信して同じメッセージが返されたら成功です。
メッセージが返ってこない場合
heroku logs --tail
で、Herokuのログでエラー等が出ているか確認すればいいです。
PUSH 메시지 전송
Herokuから直接Lineにメッセージを送ることができます。
PUSHメッセージはユーザIDを指定することで送信できます。
line_bot_api.push_message(
ユーザID,
TextSendMessage(text=メッセージ))
참고
Reference
이 문제에 관하여([Python]LineBot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/eito_2/items/7de2aca039f28f15e393텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)