파이썬에서 LINE API를 쉽게 사용해 보았습니다.
소개
언제나 사용하고 있는 LINE의 API를 사용해 무엇인가 움직이고 싶다.
LINE API를 사용하면 다른 앱처럼 특정 앱을 넣지 않아도 사용할 수있는 것이 좋은 곳.
게다가 파이썬으로 간단하게 걸리므로 다른 라이브러리와의 병용이 쉽다.
안에 어떤 처리를 넣는지는 움직이고 나서 생각하자.
우선은 핸즈온.
개발 환경
M1 칩의 MacBook Air
heroku 7.47.13
파이썬 3.9.1
Flask 1.1.2
line-bot-sdk 1.18.0
heroku는 해당 파이썬 버전이 제한되어 있기 때문에 요주의.
전체 흐름
우선 LINE Developers에 등록하여 액세스 토큰을 발행.
그 후 flask와 line-bot-sdk로 샘플을 구현해 본다.
무료로 사용할 수 Paas로 유명한 heroku에 배포.
마지막으로 Webhook 설정을 완료.
LINE Developers에 등록
LINE Developers 방문.
지금 시작하자 LINE 로그인을 하고, 계정 생성.
제공자 이름을 결정합니다.
만든 공급자를 선택하고 새 채널 만들기를 클릭합니다.
채널 유형에서 Messaging API를 선택합니다.
열린 상단에서 필요한 정보를 입력합니다.
앱 이름 스스로 결정하는 앱 이름
앱 설명 앱 설명
계획 Developer Trial
대업종 개인
소업종 개인(기타)
이메일 주소 내 이메일 주소
이용 약관에 동의하여 작성 버튼을 잡는다.
기본 설정 페이지에서 액세스 토큰 재발행.
flask로 샘플 구현
pip에서 flask와 line-bot-sdk를 설치.
$ pip install flask
$ pip install line-bot-sdk
github에서 echo 샘플를 받고 조금 수정했습니다.
main.py# ======================================================================
# Project Name : Linebot
# File Name : main.py
# Encoding : utf-8
# Creation Date : 2021/02/18
# ======================================================================
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__)
YOUR_CHANNEL_ACCESS_TOKEN = "ここにアクセストークンを入れる"
YOUR_CHANNEL_SECRET = "ここにチャンネルシークレットを入れる"
line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_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__":
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
채널 시크릿을 LINE Developer의 채널 기본 설정에서 액세스 토큰을 Messaging API 설정에서 복사하여 페타리.
YOUR_CHANNEL_ACCESS_TOKEN = "ここにアクセストークンを入れる"
YOUR_CHANNEL_SECRET = "ここにチャンネルシークレットを入れる"
heroku에 배포
heroku 페이지에서 계정 생성.
작성 후, 지시에 따라 터미널로 로그인.
$ heroku login
Enter your Heroku credentials:
Email:
Password:
Webhook에서 사용하는 URL을 원하는 이름으로 Create.
https://<좋아하는 URL>.herokuapp.com과 같습니다.
$ heroku create <好きなURL>
그런 다음 구성 파일 runtime.txt와 requirements.txt를 만듭니다.
runtime.txtpython-3.9.1
requirements.txtFlask==1.1.2
line-bot-sdk==1.18.0
Procfile에 실행 방법을 정의.
web: python main.py
heroku git에 프로그램과 구성 파일을 배포.
$ git init
$ git add .
$ git commit -m "new commit"
$ git push heroku master
push하면 heroku의 설정은 완료.
또한 프로그램은 push한 단계에서 실행되고 있는 모양.
Webhook 설정
마지막으로 LINE Developer으로 돌아가 Webhook을 설정하십시오.
Messaging API 설정에서 다음을 설정합니다.
Webhook 제출: 사용
Webhook URL: https://<좋아하는 URL>.herokuapp.com/callback
시도해보기
이 페이지의 QR 코드에서 자신의 스마트 폰으로 친구 추가.
송신한 문자가 echo되는 동작을 확인하고 종료.
역시, 언제나 사용하고 있는 앱으로 자신이 만든 프로그램의 동작을 볼 수 있으면 감동한다.
qiita에도 썼다, 파이썬으로 만든 간이 얼굴 인증 와 조합해 무언가 할 수 없을까.
참고 : htps : // cpx. 하테나 bぉg. 코m/엔트리/2017/10/31/165128
Reference
이 문제에 관하여(파이썬에서 LINE API를 쉽게 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Threen/items/3a5162b3002d2c77c63b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
M1 칩의 MacBook Air
heroku 7.47.13
파이썬 3.9.1
Flask 1.1.2
line-bot-sdk 1.18.0
heroku는 해당 파이썬 버전이 제한되어 있기 때문에 요주의.
전체 흐름
우선 LINE Developers에 등록하여 액세스 토큰을 발행.
그 후 flask와 line-bot-sdk로 샘플을 구현해 본다.
무료로 사용할 수 Paas로 유명한 heroku에 배포.
마지막으로 Webhook 설정을 완료.
LINE Developers에 등록
LINE Developers 방문.
지금 시작하자 LINE 로그인을 하고, 계정 생성.
제공자 이름을 결정합니다.
만든 공급자를 선택하고 새 채널 만들기를 클릭합니다.
채널 유형에서 Messaging API를 선택합니다.
열린 상단에서 필요한 정보를 입력합니다.
앱 이름 스스로 결정하는 앱 이름
앱 설명 앱 설명
계획 Developer Trial
대업종 개인
소업종 개인(기타)
이메일 주소 내 이메일 주소
이용 약관에 동의하여 작성 버튼을 잡는다.
기본 설정 페이지에서 액세스 토큰 재발행.
flask로 샘플 구현
pip에서 flask와 line-bot-sdk를 설치.
$ pip install flask
$ pip install line-bot-sdk
github에서 echo 샘플를 받고 조금 수정했습니다.
main.py# ======================================================================
# Project Name : Linebot
# File Name : main.py
# Encoding : utf-8
# Creation Date : 2021/02/18
# ======================================================================
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__)
YOUR_CHANNEL_ACCESS_TOKEN = "ここにアクセストークンを入れる"
YOUR_CHANNEL_SECRET = "ここにチャンネルシークレットを入れる"
line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_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__":
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
채널 시크릿을 LINE Developer의 채널 기본 설정에서 액세스 토큰을 Messaging API 설정에서 복사하여 페타리.
YOUR_CHANNEL_ACCESS_TOKEN = "ここにアクセストークンを入れる"
YOUR_CHANNEL_SECRET = "ここにチャンネルシークレットを入れる"
heroku에 배포
heroku 페이지에서 계정 생성.
작성 후, 지시에 따라 터미널로 로그인.
$ heroku login
Enter your Heroku credentials:
Email:
Password:
Webhook에서 사용하는 URL을 원하는 이름으로 Create.
https://<좋아하는 URL>.herokuapp.com과 같습니다.
$ heroku create <好きなURL>
그런 다음 구성 파일 runtime.txt와 requirements.txt를 만듭니다.
runtime.txtpython-3.9.1
requirements.txtFlask==1.1.2
line-bot-sdk==1.18.0
Procfile에 실행 방법을 정의.
web: python main.py
heroku git에 프로그램과 구성 파일을 배포.
$ git init
$ git add .
$ git commit -m "new commit"
$ git push heroku master
push하면 heroku의 설정은 완료.
또한 프로그램은 push한 단계에서 실행되고 있는 모양.
Webhook 설정
마지막으로 LINE Developer으로 돌아가 Webhook을 설정하십시오.
Messaging API 설정에서 다음을 설정합니다.
Webhook 제출: 사용
Webhook URL: https://<좋아하는 URL>.herokuapp.com/callback
시도해보기
이 페이지의 QR 코드에서 자신의 스마트 폰으로 친구 추가.
송신한 문자가 echo되는 동작을 확인하고 종료.
역시, 언제나 사용하고 있는 앱으로 자신이 만든 프로그램의 동작을 볼 수 있으면 감동한다.
qiita에도 썼다, 파이썬으로 만든 간이 얼굴 인증 와 조합해 무언가 할 수 없을까.
참고 : htps : // cpx. 하테나 bぉg. 코m/엔트리/2017/10/31/165128
Reference
이 문제에 관하여(파이썬에서 LINE API를 쉽게 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Threen/items/3a5162b3002d2c77c63b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
LINE Developers 방문.
지금 시작하자 LINE 로그인을 하고, 계정 생성.
제공자 이름을 결정합니다.
만든 공급자를 선택하고 새 채널 만들기를 클릭합니다.
채널 유형에서 Messaging API를 선택합니다.
열린 상단에서 필요한 정보를 입력합니다.
앱 이름 스스로 결정하는 앱 이름
앱 설명 앱 설명
계획 Developer Trial
대업종 개인
소업종 개인(기타)
이메일 주소 내 이메일 주소
이용 약관에 동의하여 작성 버튼을 잡는다.
기본 설정 페이지에서 액세스 토큰 재발행.
flask로 샘플 구현
pip에서 flask와 line-bot-sdk를 설치.
$ pip install flask
$ pip install line-bot-sdk
github에서 echo 샘플를 받고 조금 수정했습니다.
main.py# ======================================================================
# Project Name : Linebot
# File Name : main.py
# Encoding : utf-8
# Creation Date : 2021/02/18
# ======================================================================
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__)
YOUR_CHANNEL_ACCESS_TOKEN = "ここにアクセストークンを入れる"
YOUR_CHANNEL_SECRET = "ここにチャンネルシークレットを入れる"
line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_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__":
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
채널 시크릿을 LINE Developer의 채널 기본 설정에서 액세스 토큰을 Messaging API 설정에서 복사하여 페타리.
YOUR_CHANNEL_ACCESS_TOKEN = "ここにアクセストークンを入れる"
YOUR_CHANNEL_SECRET = "ここにチャンネルシークレットを入れる"
heroku에 배포
heroku 페이지에서 계정 생성.
작성 후, 지시에 따라 터미널로 로그인.
$ heroku login
Enter your Heroku credentials:
Email:
Password:
Webhook에서 사용하는 URL을 원하는 이름으로 Create.
https://<좋아하는 URL>.herokuapp.com과 같습니다.
$ heroku create <好きなURL>
그런 다음 구성 파일 runtime.txt와 requirements.txt를 만듭니다.
runtime.txtpython-3.9.1
requirements.txtFlask==1.1.2
line-bot-sdk==1.18.0
Procfile에 실행 방법을 정의.
web: python main.py
heroku git에 프로그램과 구성 파일을 배포.
$ git init
$ git add .
$ git commit -m "new commit"
$ git push heroku master
push하면 heroku의 설정은 완료.
또한 프로그램은 push한 단계에서 실행되고 있는 모양.
Webhook 설정
마지막으로 LINE Developer으로 돌아가 Webhook을 설정하십시오.
Messaging API 설정에서 다음을 설정합니다.
Webhook 제출: 사용
Webhook URL: https://<좋아하는 URL>.herokuapp.com/callback
시도해보기
이 페이지의 QR 코드에서 자신의 스마트 폰으로 친구 추가.
송신한 문자가 echo되는 동작을 확인하고 종료.
역시, 언제나 사용하고 있는 앱으로 자신이 만든 프로그램의 동작을 볼 수 있으면 감동한다.
qiita에도 썼다, 파이썬으로 만든 간이 얼굴 인증 와 조합해 무언가 할 수 없을까.
참고 : htps : // cpx. 하테나 bぉg. 코m/엔트리/2017/10/31/165128
Reference
이 문제에 관하여(파이썬에서 LINE API를 쉽게 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Threen/items/3a5162b3002d2c77c63b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ pip install flask
$ pip install line-bot-sdk
# ======================================================================
# Project Name : Linebot
# File Name : main.py
# Encoding : utf-8
# Creation Date : 2021/02/18
# ======================================================================
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__)
YOUR_CHANNEL_ACCESS_TOKEN = "ここにアクセストークンを入れる"
YOUR_CHANNEL_SECRET = "ここにチャンネルシークレットを入れる"
line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_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__":
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
YOUR_CHANNEL_ACCESS_TOKEN = "ここにアクセストークンを入れる"
YOUR_CHANNEL_SECRET = "ここにチャンネルシークレットを入れる"
heroku 페이지에서 계정 생성.
작성 후, 지시에 따라 터미널로 로그인.
$ heroku login
Enter your Heroku credentials:
Email:
Password:
Webhook에서 사용하는 URL을 원하는 이름으로 Create.
https://<좋아하는 URL>.herokuapp.com과 같습니다.
$ heroku create <好きなURL>
그런 다음 구성 파일 runtime.txt와 requirements.txt를 만듭니다.
runtime.txt
python-3.9.1
requirements.txt
Flask==1.1.2
line-bot-sdk==1.18.0
Procfile에 실행 방법을 정의.
web: python main.py
heroku git에 프로그램과 구성 파일을 배포.
$ git init
$ git add .
$ git commit -m "new commit"
$ git push heroku master
push하면 heroku의 설정은 완료.
또한 프로그램은 push한 단계에서 실행되고 있는 모양.
Webhook 설정
마지막으로 LINE Developer으로 돌아가 Webhook을 설정하십시오.
Messaging API 설정에서 다음을 설정합니다.
Webhook 제출: 사용
Webhook URL: https://<좋아하는 URL>.herokuapp.com/callback
시도해보기
이 페이지의 QR 코드에서 자신의 스마트 폰으로 친구 추가.
송신한 문자가 echo되는 동작을 확인하고 종료.
역시, 언제나 사용하고 있는 앱으로 자신이 만든 프로그램의 동작을 볼 수 있으면 감동한다.
qiita에도 썼다, 파이썬으로 만든 간이 얼굴 인증 와 조합해 무언가 할 수 없을까.
참고 : htps : // cpx. 하테나 bぉg. 코m/엔트리/2017/10/31/165128
Reference
이 문제에 관하여(파이썬에서 LINE API를 쉽게 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Threen/items/3a5162b3002d2c77c63b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 페이지의 QR 코드에서 자신의 스마트 폰으로 친구 추가.
송신한 문자가 echo되는 동작을 확인하고 종료.
역시, 언제나 사용하고 있는 앱으로 자신이 만든 프로그램의 동작을 볼 수 있으면 감동한다.
qiita에도 썼다, 파이썬으로 만든 간이 얼굴 인증 와 조합해 무언가 할 수 없을까.
참고 : htps : // cpx. 하테나 bぉg. 코m/엔트리/2017/10/31/165128
Reference
이 문제에 관하여(파이썬에서 LINE API를 쉽게 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Threen/items/3a5162b3002d2c77c63b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)