Voice secretary 버전 3.0.1

2023. 11. 3. 10:24·프로젝트/음성비서

시작하기전

이번에는 양심껏 0.0.1만 올렸습니다 ㅎㅎ. 이번에는 간단한 기능 한개만 추가했는데, 다른 글에 자세하게 설명되어 있어 딱히 설명할 것이 없다.

Ver 3.0.1

Ver 3.0.1 특징

- 날씨 정보 카카오톡 친구에게 보내기 추가

- 코드 리팩토링

- 버그 수정

 

1. 날씨 정보 친구에게 카카오톡 보내기

저번 3.0.0에서 나에게 보내기를 구현했었고, 이번에는 나 뿐만 아니라 내가 지정한 사용자에게도 보낼 수 있도록 기능을 추가해봤다. 우선 이 방법 또한 미리 사전 세팅이 필요하며, 지정해놓은 사람한테만 보낼 수 있다.

 

카카오톡 api로 친구한테 메세지 보내기

0. 사전준비 카카오톡 access token 발급받기 카카오 플랫폼 서비스에서 카카오톡, 카카오스토리와 같은 카카오 서비스 및 카카오 플랫폼 기술과 관련된 API를 제공합는데 이런 서비스를 이용하기

changsroad.tistory.com

아래 링크에서 세팅법과 적용법을 알면 될 것 같고, 카카오톡 api 또한 access 토큰은 금방 만료되기 때문에 비교적 유효기간이 긴 recess토큰으로 계속 access token을 갱신하는 방법으로 api를 호출하였다. 

api는 역시 api_token_list.py라는데다가 저장해놨다.

우선 지금은 내가 kakao developer에 팀원으로 지정해놓은 친구 모두에게 보내기로 설정해놨는데, 이건 미리 보내게될 사람을 추가해놓은 다음에 api호출할 때 friend_names를 받아오고, 비서를 호출할 때 누구누구한테 보내줘 이런식으로 추후에 구현할 수도 있을 것 같다. (지금은 부모님과 여자친구만 저장해놔서 굳이)

더보기
import json
import requests
from utils.api_token_list import access_token

def get_friend_info(kheaders):
    url = "https://kapi.kakao.com/v1/api/talk/friends?limit=3&order=asc" #친구 목록 가져오기
    result = json.loads(requests.get(url, headers=kheaders).text)
    friends_list = result.get("elements")
    freind_names=[i.get('profile_nickname') for i in friends_list]
    friend_ids=[i.get('uuid') for i in friends_list]
    return freind_names,friend_ids
    
def weather_kakako(weather_list):
   
    kcreds = {"access_token" : access_token}
    kheaders = {"Authorization": "Bearer " + kcreds.get('access_token')}

    url_mine = "https://kapi.kakao.com/v2/api/talk/memo/default/send"
    url_friend ="https://kapi.kakao.com/v1/api/talk/friends/message/default/send"
    weather_url = "https://search.naver.com/search.naver?sm=top_hty&fbm=0&ie=utf8&query=용인 동백 날씨"

    friend_names,friend_ids = get_friend_info(kheaders)

    # 메세지 내용
    text = f"""\
    # 동백 날씨 정보
    기온 : {weather_list[0]}
    습도  : {weather_list[1]}
    바람 : {weather_list[2]}
    """
    template = {"object_type": "text","text": text,
                "link": {"web_url": weather_url,"mobile_web_url": weather_url},
                "button_title": "날씨 상세보기"}
    data_mine = {"template_object" : json.dumps(template)}

    res = requests.post(url_mine, data=data_mine, headers=kheaders)
    if res.json().get('result_code') == 0: print('나에게 전송 성공.')
    else: print('나에게 전송 실패. Error : ' + str(res.json()))
    data_friend = {'receiver_uuids': json.dumps(friend_ids) , "template_object" : json.dumps(template)}
    res2 = requests.post(url_friend, data=data_friend, headers=kheaders)
    if len(res2.json().get('successful_receiver_uuids'))>=1 : print("친구들에게 전송 성공")
    else: print("친구들에게 전송 실패. error: " + str(res2.json()))

요약

- 카카오톡 api를 이용해서 날씨 정보 친구에게 보내기

- 코드 리팩토링, 버그 수정

728x90

'프로젝트 > 음성비서' 카테고리의 다른 글

업데이트 할 내용(Latest. Ver 4.0.1)  (0) 2023.11.03
Voice secretary 버전 4.0.1  (1) 2023.11.03
Voice secretary 버전 3.0.0  (2) 2023.11.02
Voice secretary 버전 2.0.0  (0) 2023.11.02
KT GenieLabs api 이용하기  (0) 2023.11.02
'프로젝트/음성비서' 카테고리의 다른 글
  • 업데이트 할 내용(Latest. Ver 4.0.1)
  • Voice secretary 버전 4.0.1
  • Voice secretary 버전 3.0.0
  • Voice secretary 버전 2.0.0
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (481)
      • 알쓸신잡 (88)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Blog

    • 🏠 Home

    ✏️글쓰기
    💻 관리

    Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    파이썬
    그리디
    DFS
    이코테
    dp
    나동빈
    백준
    이분탐색
    BFS
    이것이취업을위한코딩테스트다
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바