강좌
클라우드/리눅스에 관한 강좌입니다.
기타 분류

[PHP] 네이버 웍스 알림봇 생성하기 1-1

작성자 정보

  • 캘리포니아 작성
  • 작성일

컨텐츠 정보

본문

[PHP]네이버 웍스 알림봇 생성하기

#NAVERWORKS #Bot #API2.0


★ HTTPS가 적용된 도메인이어야 합니다.


먼저 복사가 어렵게 스샷으로 코드가 작성된점 죄송합니다.(__);;

아래 postman이나 insomnia가 자동으로 원하는 코드를 자동 생성해주기에..

쉽게 생각하였습니다.



0. https://developers.worksmobile.com/kr/reference/bot?lang=ko 페이지를 기반으로 작성되었습니다.

0-1. 자세한 설명보단 메뉴얼기반으로 필요한 내용만으로 작성합니다.

0-2. API 작업시 Postman, Insomnia 프로그램으로 작업하면 도움이 됩니다.

https://www.postman.com/

3954b583a06c7a36fb5349b4e691a8c3_1658466909_7287.png
 

https://insomnia.rest/

3954b583a06c7a36fb5349b4e691a8c3_1658466943_672.png
 



1. 네이버웍스 Developer Console 에서 API 2.0을 기준으로 작성되었습니다.

2. API 2.0에서 알림봇 서비스 앱을 추가합니다.

3. 서비스 앱 추가후 Client ID, Client Secret정보를 확인합니다.


4-1. 인가코드발급

3954b583a06c7a36fb5349b4e691a8c3_1658466989_97.png
 


시작이 되는 부분입니다.

이부분은 프로그램 작업보다는 URL로 코드(code)를 받는 목적으로 하시면 됩니다.

처음 한번 사용되고 사용하지 않습니다.

3954b583a06c7a36fb5349b4e691a8c3_1658467282_0524.png
심플하게 바로 URL로 적용한 부분입니다.

리턴 받은 코드의 유효시간은 1시간 입니다.



4-2. 토큰발급

4-1.에서 확인하 code값으로 Access Token을 발급합니다.

3954b583a06c7a36fb5349b4e691a8c3_1658467665_3162.png


코드로는 


3954b583a06c7a36fb5349b4e691a8c3_1658467960_7553.png

이렇게 처리하시면 됩니다.


맨아래 $this->mdfyBots 부분은 리턴받은 값들을 DB에 저장하는 부분입니다.


access_token 이 1시간 유효기간이기에 expires_in 값을 확인하여 알림봇을 발송할때마다 유효기간을 체크하여 1시간이 지나면

새로 토큰값을 갱신하고 1시간 이내이면 기존 access_token값으로 알림봇을 보냅니다.



4-3. 토큰정보 DB저장

리턴받은 정보를 Table을 생성하여 저장합니다.
3954b583a06c7a36fb5349b4e691a8c3_1658468940_1778.png 



4-4. Access Token 갱신

Access Token 유효값이 만료되면 토큰정보를 갱신합니다.

3954b583a06c7a36fb5349b4e691a8c3_1658469119_3268.png


코드로는 

3954b583a06c7a36fb5349b4e691a8c3_1658469209_2057.png
코드로는 이렇게 표시가 됩니다.

기존 DB에 저장된 refresh_token정보로 새로운 Access_token 값을 받습니다.

그리고 다시 DB Table에 새로운 정보로 저장을 합니다.

3954b583a06c7a36fb5349b4e691a8c3_1658469385_8121.png
이렇게 현재시간에서 1시간을 더한 시간을 DB에 업데이트 저장합니다.


이상입니다.

다음에는 알림봇 발송 부분을 작성하도록 하겠습니다.


관련자료

댓글 2

관리자님의 댓글

  • 관리자
  • 작성일
많은 도움이 되었습니다. 감사합니다. ^^

캘리포니아님의 댓글

  • 캘리포니아
  • 작성일
4-1. 정보 수정합니다.
요청시 scope값을 bot,bot.read 에서 bot,bot.read,user,user.read,directory,directory.read
값으로 수정합니다.
위 값으로 수정을 해야 구성원목록(GET: https://www.worksapis.com/v1.0/users)을 볼 수 있습니다.

또한 callback.php에서는 넘어온 인가코드 값을 확인하기 위해서는 print_r($_REQUEST); 코드가 적혀 있어야 합니다.

추가로 https://developers.worksmobile.com/kr/?lang=ko 에서 로그인후에 새로운 브라우저 탭 페이지를 열고 난후,
인가코드값 요청 url을 실행시켜 주세요. (아님 로그인요청 페이지가 나타납니다.)

공지사항


뉴스광장


  • 현재 회원수 :  60,033 명
  • 현재 강좌수 :  35,783 개
  • 현재 접속자 :  138 명