Node.js와 Python으로 LINE Notify 사용해보기(1) – 기본

안녕하세요. LINE Developer Relations 팀의 Developer Advocate 윤인성입니다. 오늘은 LINE이 무료로 제공하고 있는 LINE Notify API에 대해서 함께 살펴보도록 하겠습니다.

서버를 운영할 때는 서버에 문제가 생겼을 때 등의 상황에서, 이를 즉각적으로 알 수 있는 장치가 필요합니다. 이를 위해서 다양한 Notification API를 활용하게 되는데요. LINE은 무료로 쉽게 사용할 수 있는 Notification API로 LINE Notify를 지원하고 있습니다. 오늘은 이 LINE Notify의 사용 방법을 간단하게 알아보겠습니다.

계정 준비

LINE을 처음 사용하는 경우, LINE 계정을 만들고, 이메일을 연결해야 합니다.

LINE 애플리케이션 설치하기

일단 LINE으로 알람을 받아야 하므로 LINE 애플리케이션이 필요합니다. 안드로이드 사용자라면 “구글 플레이 스토어”에서, 아이폰 사용자라면 “앱 스토어”에서 LINE 애플리케이션을 다운로드 해주세요.

계정에 이메일 연결하기

LINE API를 사용하려면 이메일이 인증된 LINE 계정이 필요합니다. 이메일을 인증 받으려면 LINE에서 설정 화면에 들어가서, 계정을 누르고, 이메일을 눌러 이메일을 입력하면 됩니다. 다음 그림을 참고하면 쉽게 이해할 수 있을 것입니다.

LINE Notify 토큰 발급 받기

그럼 본격적으로 LINE Notify를 사용해봅시다. 일단 다음 링크에 들어가주세요.

LINE Notify: https://notify-bot.line.me/en/

이어서 오른쪽 위에 있는 Log in 버튼을 누르고, 이전에 등록한 LINE 계정을 입력해주세요. 로그인이 완료되면 다시 메인 화면으로 돌아옵니다. 다만 이번에는 오른쪽 위에 자신의 이름이 들어있을 것입니다.

자신의 이름을 누르면, 드롭다운 메뉴가 나옵니다. 항목 중에서 My page를 눌러주세요.

이어서 스크롤을 내려 Generate access token(For developers)Generate token을 눌러주세요.

Generate token 대화 상자가 열리면, 메시지를 구분할 명칭과 1-on-1 chat with LINE Notify 또는 그룹을 선택할 수 있습니다.

  • 1-on-1 chat with LINE Notify: LINE Notify가 직접적으로 개인에게 메시지를 보내는 방식
  • 그룹: LINE Notify가 그룹으로 메시지를 주는 방식

기본적인 사용 방법은 두 가지 모두 같습니다. 다만 그룹에 메시지를 주려면, 해당 그룹에 LINE Notify 계정을 추가해야 합니다. 이와 관련된 내용은 마지막에 간단하게 언급하겠습니다.

일단 1-on-1 chat with LINE Notify를 선택하고, Generate token 버튼을 눌러주세요.

Generate token 버튼을 누르면, 다음과 같이 토큰이 나옵니다. 이 토큰을 복사해주세요. 아래에 있는 Copy 버튼을 눌러서 토큰을 복사해주세요.

참고적으로 토큰을 생성할 때, 토큰이 생성되었다는 LINE 메시지가 옵니다.

코드 작성하기

그럼 본격적으로 코드를 작성해보겠습니다. 우리가 해야하는 일은 다음과 같습니다.

  1. “https://notify-api.line.me/api/notify”에 POST 요청을 보낸다.
  2. 이때 헤더에 Authorization을 “Bearer <토큰>”을 넣는다.
  3. 전달하고자 하는 메시지는 message를 키로 지정해서 데이터로 보낸다.

프로그래밍 언어가 아닌, 자연 언어로 풀어서 설명하려니 약간 복잡하게 느껴지는데요. 요청 한 번만 보내면 되는 굉장히 간단한 일입니다. 바로 코드로 살펴봅시다.

Node.js

일단 다음 명령어를 사용해서, request 모듈을 설치합니다.

npm install request

이어서 다음과 같은 코드를 작성합니다. 굉장히 간단한 코드입니다.

// 모듈을 읽어 들입니다.
const request = require('request')

// 요청을 위한 상수를 선언합니다: TOKEN은 자신의 것을 입력해주세요.
const TARGET_URL = 'https://notify-api.line.me/api/notify'
const TOKEN = '<자신의 토큰을 넣어주세요>'

// 요청합니다.
request.post({
  url: TARGET_URL,
  headers: {
    'Authorization': `Bearer ${TOKEN}`
  },
  form: {
    message: '안녕하세요. LINE Notify 테스트입니다.'
  }
}, (error, response, body) => {
  // 요청 완료
  console.log(body)
})

Python

이번에는 Python입니다. Python은 Python 3.X 버전을 기준으로 설명하겠습니다. 일단 요청을 쉽게 보낼 수 있게 requests 모듈을 설치합니다.

pip install requests

코드는 다음과 같습니다. 마찬가지로 이전에 설명한 내용을 그대로 구현한 간단한 코드입니다.

# 모듈을 읽어 들입니다.
import requests

# 요청을 위한 상수를 선언합니다: TOKEN은 자신의 것을 입력해주세요.
TARGET_URL = 'https://notify-api.line.me/api/notify'
TOKEN = '<자신의 토큰을 넣어주세요>'

# 요청합니다.
response = requests.post(
  TARGET_URL,
  headers={
    'Authorization': 'Bearer ' + TOKEN
  },
  data={
    'message': '안녕하세요. LINE Notify 테스트입니다.'
  }
)

# 요청 완료
print(response.text)

실행해보기

코드를 실행하면, LINE Notify라는 계정에서 다음과 같은 메시지가 옵니다. 터미널 화면 또는 명령 프롬프트 화면을 보면 {"status":200,"message":"ok"}라고 출력되어 있을 것입니다.

그룹을 사용할 경우

그룹으로 LINE Notify 메시지를 전달하고 싶다면, 해당 그룹에 LINE Notify를 추가해야 합니다.

만약 그룹을 추가하지 않았다면, 터미널 화면 또는 명령 프롬프트 화면에 {"status":400,"message":"LINE Notify account doesn't join group which you want to send."}라는 메시지가 출력됩니다.

지금까지 LINE Notify의 사용 방법을 간단하게 알아보았습니다.
참고적으로 API와 관련된 자세한 설명은 공식 문서를 참고해주세요. LINE Notify는 이 이외에도 스티커와 이미지를 전송하는 기능도 가지고 있습니다. 이와 관련된 내용은 다음에 다뤄보겠습니다.