GCP/Apps Script

Apps Script로 친구에게 카카오톡 메세지 보내기

whistory 2023. 6. 5. 08:20
반응형

 

 

 

 

 

 

내 친구 목록에 있는 친구에게 메세지를 보낼 순 없다.

사용 신청을 해서 승인을 받아 가능하다.

 

Kakao Developers

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

 

그럼 어떤 친구에게 메세지를 보낼 수 있을까

[내 어플리케이션] → [앱 설정] → [팀 관리] 에서 kakao developers에 가입한 친구를 초대해 그 친구에게만 메세지를 보낼 수 잇다.

 

친구에게 메시지를 보내기 위해서는 친구의 uuid를 알아야 한다.

Kakao Developers

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

function getFriendList() {
    
  const url = "https://kapi.kakao.com/v1/api/talk/friends";
  
  const options = {
    method: "POST",
    muteHttpExceptions: true,
    headers: { 
                Authorization: "Bearer " + ACCESS_TOKEN 
                , contentType: "application/x-www-form-urlencoded;charset=utf-8"
            }
  };
  const res = UrlFetchApp.fetch(url, options).getContentText();
  console.log(res);
}

기존에 가지고 있던 코드에서 url만 수정해서 실행하니까 아래와 같은 에러가 계속 발생했다.

 

 

기존에 가지고 있던 코드에서 url만 수정해서 실행하니까 아래와 같은 에러가 계속 발생했다.

 

 

역시 docs를 잘 읽고 해야 한다…..

function getFriendList() {
    
  const url = "https://kapi.kakao.com/v1/api/talk/friends";
  
  const options = {
    method: "GET",
    muteHttpExceptions: true,
    headers: { 
                Authorization: "Bearer " + ACCESS_TOKEN
            }
  };
  const res = UrlFetchApp.fetch(url, options).getContentText();
  console.log(res);
}

 

 

 

 

 

사실 나는 실행이 안되길래 python으로 uuid를 가져왔엇다…

import json
import requests

KAKAO_TOKEN = "ACCESS_TOKEN" 
header = {"Authorization": 'Bearer ' + KAKAO_TOKEN}
url = "https://kapi.kakao.com/v1/api/talk/friends" #친구 정보 요청

result = json.loads(requests.get(url, headers=header).text)

friends_list = result.get("elements")
friends_id = []

print(requests.get(url, headers=header).text)
print(friends_list)

for friend in friends_list:
    friends_id.append(str(friend.get("uuid")))

    print(friends_id)

 

 

 

 

 

 

아무튼 친구의 UUID를 가져와서 친구에게 메세지를 보내본다.

function sendMessageToFriend() {
  const NEW_TOKEN = getAuthRefresh();
  const url = "https://kapi.kakao.com/v1/api/talk/friends/message/default/send";

  var template_object = `{
                        "object_type": "text",
                        "text": "친구한테 메세지 보내기 성공!",
                        "link": {
                            "web_url": "https://developers.kakao.com",
                            "mobile_web_url": "https://developers.kakao.com"
                        },
                        "button_title": "바로 확인"
                      }
                    `;
  var receiver_uuids = `["1O3V7d7u1-fe8sDzy_vO9sD0w-_W59_t1ONp"]`;

  const options = {
    method: "POST",
    muteHttpExceptions: true,
    headers: { 
                Authorization: "Bearer " + NEW_TOKEN 
                , contentType: "application/x-www-form-urlencoded;charset=utf-8"
            },
    payload: {template_object, receiver_uuids}
  };
  const res = UrlFetchApp.fetch(url, options).getContentText();
  console.log(res);
  
}

 

 

성공

 

반응형