NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    스크립트 카카오톡 오픈 API를 이용한 업무 자동화 매크로 만들기. (Creating business automation macro u…

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 수많은 서비스들이 Open API를 제공하고 있습니다. 네이버, 구글, 카카오톡, 텔레그램 및 비트코인 빗썸, 주식 크레온등등 정말 많습니다. 이런 서비스들을 이용하여 반복적인 업무를 매크로가 대신하게 할 수 있는데요. 오늘은 카카오톡 Open API를 이용하여 엔지엠 매크로에서 처리하는 방법을 알아보도록 하겠습니다. 우선, [ 카카오톡 개발자 센터 ]에서 Open API 사용 신청을 해야 합니다. "시작하기" 또는 우측 상단의 "로그인"을 누르세요.

    ElRF6Xs.png

     

     

    "애플리케이션 추가하기"를 클릭하세요.

    Havnrxg.png

     

     

    적절하게 애플리케이션 정보를 입력하고, 저장을 클릭하세요.

    QjXRO6r.png

     

     

    하단의 "플렛폼 설정하기"를 클릭하세요. 단순히 Open API만 사용한다면 이 단계는 건너뛰어도 됩니다. 일단 여기서 Admin 키를 복사해두세요^^

    sMBqDD4.png

     

     

    홈페이지를 통해 카카오톡 플랫폼과 연동하려면 "Web 플랫폼 등록"을 선택해야 합니다. 안드로이드나 iOS에서 서비스한다면 마켓과 앱의 고유한 키를 등록해야 합니다. 이 부분은 직접 테스트하지는 않았으나 웹앱은 아마도 안될듯하고, 네이티브나 하이브리드 형태여야 할거 같네요. 아무튼~ 저는 홈페이지를 가지고 있으므로 일단 등록 해둡니다.

    iW9EeBO.png

     

     

    플랫폼 등록은 Redirect URI를 등록하기 위해 필수입니다. 카카오톡에서 사용자들에게 메시지 또는 이미지를 보내거나, 카카오 스토리 링크나 마케팅 용도의 사이트 정보를 보내려면 Access 키를 발급 받아야 합니다. 이 키를 받으려면 Redirect URI에 설정한 주소로 응답을 받아야 합니다. 약간 복잡하긴 한데요. 자체적인 서비스를 카카오톡으로 제공하려면 이 단계를 수행해야 합니다. 엔지엠 매크로를 이용해서 사용자 정보를 탐색하고 별도로 처리한다면 플랫폼 등록은 안해도 됩니다.

    pqhysLc.png

     

     

    이제 엔지엠 에디터를 실행하고, 아래와 같이 정보들을 입력하세요.

    • API 주소: https://kapi.kakao.com/v1/user/ids
      - 카카오톡 사용자의 아이디 목록을 가져옵니다.

    EofVsKY.png

     

     

    헤더 목록을 클릭하고 아래와 같이 정보를 입력해줍니다.

    • 헤더 목록: Authorization: KakaoAK <Admin 키>
      - Admin 키는 위에서 복사해둔 사용자의 관리자 키입니다.

    IRZPfdt.png

     

     

    실행하면 아래 그림과 같이 사용자 정보를 Json 타입으로 가져온것을 알 수 있습니다. 카카오톡 사용자의 고유한 아이디는 숫자로 이루어져 있어서 누가 누군지 알기 어렵습니다.

    fpccDtk.png

     

     

    사용자의 디테일한 정보를 가져오려면 어떻게 해야할까요? 이미 엔지엠 에디터에 익숙하신 분들은 콤마로 구분된 아이디를 배열로 저장하고, [ Foreach 반복 ]을 이용해서 처리하면 된다는걸 알고 있을겁니다. 자 그러면 반복기 안에서 아이디로 상세 정보를 가져오려면 어떻게 해야 할까요? 카카오톡 디벨로퍼 센터에 보면 사용자 정보를 가져올 수 있는 API가 있습니다.

    [ 카카오톡 - 여러 사용자 정보 가져오기 ]

     

    아래 샘플을 참고해서 엔지엠 에디터에 설정하면 됩니다.

    요청 (Request)

    curl -v -G GET "https://kapi.kakao.com/v2/app/users" \
        -H "Authorization: KakaoAK {APP_ADMIN_KEY}" \
        -d "target_ids=[1399634384,1406264199]" \
        -d "target_id_type=user_id"

     

    요청 (Request: property_keys로 이메일, 프로필 지정 요청

    curl -v -G GET "https://kapi.kakao.com/v2/app/users" \
        -H "Authorization: KakaoAK {APP_ADMIN_KEY}" \
        -d "target_ids=[1399634384,1406264199]" \
        -d "target_id_type=user_id" \
        -d 'property_keys=["kakao_account.email","kakao_account.profile"]'

     

    요청 (조회 가능한 모든 사용자 정보 요청)

    curl -v -G GET "https://kapi.kakao.com/v2/app/users" \
        -H "Authorization: KakaoAK {SERVICE_APP_ADMIN_KEY}" \
        -d "target_ids=[1285016924429472463]" \
        -d "target_id_type=user_id" \
        -d 'property_keys=["kakao_account.","properties.","has_signed_up"]'

     

    마지막 API인 조회 가능한 모든 사용자 정보 요청을 테스트 해볼께요. API에서 GET은 메소드고, 뒤가 API 호출 주소입니다. 그리고, -H는 헤더 목록에 추가하는 파라메터예요. -d는 파라메터 목록에 추가되는 옵션들입니다. 앞서 확인한 사용자 아이디중 하나를 선택해서 target_ids 파라메터에 지정하고 실행 해보세요. 저는 제 아이디를 넣었습니다.

    QvUcoKt.png

     

     

    사용자 정보를 잘 가져왔습니다. 제 생일이 보이는거보니 맞네요^^; 속성에서 "응답 결과"를 더블 클릭하면 내용이 전체 선택됩니다. 여기서 Ctrl+C를 눌러서 클립보드에 저장하세요. 메모장에 붙여넣기하면 전체 내용을 확인할 수 있습니다. 하지만, 내용을 확인하기가 좀~ 불편합니다. 제이슨을 좀 더 보기좋게 해주는 크롬 확장 도구와 웹사이트들이 많습니다. [ 여기 ]에 내용을 붙여넣기 해보세요. Viewer 탭을 클릭하면 아래 그림처럼 볼 수 있습니다. 이외에도 XML로 변환하거나 데이터 테이블로 변환도 가능하니 용도에 맞게 사용할 수 있습니다.

    2EBuDBJ.png

     

     

    정보를 가져오는건 Admin 키를 이용해서 처리가 가능합니다. 하지만, 메시지나 이미지 또는 카카오 스토리 링크등등을 보내려면 추가적인 내용이 더 필요합니다. 당연한 이야기겠지만~ 내 계정에 로그인 되어 있어야 합니다. 그렇기 때문에 카카오톡 로그인 API를 이용해서 세션에 대한 토큰을 받아야 합니다. 이 토큰으로 인증이 완료될 수 있도록 처리도 필요하죠~ 이런 부분들을 자동화하기 어렵게 만드는 장치도 피해야 합니다. 여유가되면 자동으로 로그인하고, 메시지와 이미지를 사용자 목록만큼 반복하면서 보낼 수 있도록 해볼께요. 카카오톡 디벨로퍼 센터에 방문하면 상당히 다양한 API들을 확인할 수 있습니다. 마케팅이나 자동화 업무에 사용할만한 유용한 내용들이 많으니 한번씩 검토해보시면 좋을거 같네요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천4 비추천0

    댓글목록

    등록된 댓글이 없습니다.