GCP/Apps Script
Apps Script로 친구에게 카카오톡 메세지 보내기
whistory
2023. 6. 5. 08:20
반응형
내 친구 목록에 있는 친구에게 메세지를 보낼 순 없다.
사용 신청을 해서 승인을 받아 가능하다.
그럼 어떤 친구에게 메세지를 보낼 수 있을까
[내 어플리케이션] → [앱 설정] → [팀 관리] 에서 kakao developers에 가입한 친구를 초대해 그 친구에게만 메세지를 보낼 수 잇다.
친구에게 메시지를 보내기 위해서는 친구의 uuid를 알아야 한다.
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);
}
성공
반응형