에서 개발자 계정 생성후
create new provider
버튼 클릭해서 Provider 생성
create new chanel
으로 채널 생성후
봇 을 만들거기 때문에 messaging API
를 선택해준다
다음과 같은 화면이 나온다
만들어진 봇을 클릭하면 세팅 페이지가 나온다
밑으로 내리면 qr 코드가 있는데 핸드폰 라인앱을 켜서 친구추가를 해준다
옆에 set message 눌러서 다음과 같이 설정해준다
channel secret
, channel access token
값을 잘 복사해서 따로 저장해둔다.
이값들은 봇의 아이디, 패스워드와 같은 인증수단으로 사용하기 때문에 공개되면 안된다.
https://repl.it/@toomy0toons/LineBot 접속한다
좌측 env 파일옆에 아이콘을 누르면 rename 이 있다. 클릭해서 파일 이름을 .env (앞에 . 있음) 으로 바꾼다.
env 파일을 열어 LINE_CHANNEL_SECRET 과 LINE_CHANNEL_ACESS_TOKEN 에 해당하는 값을 넣어준다
run 버튼을 눌러서 실행을 하면 하얀 웹창이 나온다
이 주소창안의 주소를 잘 기억하자 이게 내 서버 주소이다. https://LineBot.toomy0toons.repl.co
네이버 라인 창으로 돌아가서 use webhook -> enabled 로 변환 하고 아래 webhook_URL 을 본인 주소 + /callback 입력한다 verify 누르면 안되는게 정상이래.. 그니깐 누르지말자 애들아 누르면 서버터져
라인 앱을 켜서 확인해보자. 내가 채팅을 보내면 봇이 그 채팅을 그대로 돌려줄것이다.
코드를 봐보자
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
text = event.message.text
handler 라는 기능을 활용하는데,
MessageEvent 중에서도 TextMessage 즉 문자메세지가왔을 때 아래의 함수를 실행시켜주는 기능이다. (자동반복된다)
두번째 줄을 보면 text = event.message.text
으로 사용자가 입력한 메세지의 내용을 저장한다.
그 다음 if text == 'profile':
profile 이라는 말이 입력 되었으면 밑의 기능을 실행하고,
예약된 명령어가 아닐경우에, 다시 되돌려준다.
else:
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text))
앞으로 코딩할때는 elif text = ‘명령어’: 식으로 계속해서 추가해주면된다.
봇을 만들 때 입력하기가 귀찮을 수 있다.
이때 quickreply 를 활용할 수 있다.
다음 코드를 잘 붙여넣기 해보자
elif text == '메뉴':
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(
text='중식 or 석식?',
quick_reply=QuickReply(
items=[
QuickReplyButton(
action=MessageAction(label="중식", text="중식")
),
QuickReplyButton(
action=MessageAction(label="석식", text="석식")
),
])))
위치는 맨밑에 else 와 줄을 맞춰서 넣어 주면 된다.
여기서 label 은 표시되는 메뉴의 이름, text 는 사용자 대신해서 입력되는 말이다.
line-bot-sdk-python/app.py at master · line/line-bot-sdk-python · GitHub 여기 참고