NGMsoftware

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

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

    팁 앤 테크

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

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

    스크립트 카카오톡 오픈 API를 이용해서 메시지 보내기. (Send messages using KakaoTalk Open API.)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 오늘은~ 이전 시간에 이어서 카카오톡 Open API를 이용해서 메시지를 보내는 방법에 대해 알아보도록 하겠습니다. [ 이전 시간에 학습한 내용을 참고 ]하여 카카오톡 Open API 이용 신청하시고요. 사용자 정보 또는 친구 목록을 가져오는데까지 확인해야 합니다. 우선, [ 카카오 디벨로퍼 사이트 ]로 이동하고, Rest API 테스트 도구를 실행하세요.

    zi9EjXq.png

     

     

    우선 [ 나에게 기본 템플릿으로 메시지 보내기 ] API를 확인 해봅시다. 요청에서 "토큰 발급"을 눌러서 Access Key를 받으세요. 그리고 복사 해둡니다.

    WbWT7S4.png

     

     

     

    "토큰 발급" 버튼 아래에 "전송" 버튼을 누르면 카카오톡으로 메시지가 오는걸 확인할 수 있습니다. 메시지 전송이 성공하면 0을 반환합니다.

    mLrjXuW.png

     

     

    이제 엔지엠 에디터에서 확인하기 위해 Open API를 확인해야 합니다. [ 여기 ]로 이동하면 API 사용 설명을 볼 수 있습니다.

    요청 (Request)

    POST /v2/api/talk/memo/default/send HTTP/1.1
    Host: kapi.kakao.com
    Authorization: Bearer {ACCESS_TOKEN}

     

    견본 (Sample)

    curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/default/send" \
        -H "Authorization: Bearer {ACCESS_TOKEN}" \
        -d 'template_object={
            "object_type": "text",
            "text": "텍스트 영역입니다. 최대 200자 표시 가능합니다.",
            "link": {
                "web_url": "https://developers.kakao.com",
                "mobile_web_url": "https://developers.kakao.com"
            },
            "button_title": "바로 확인"
        }'

     

    응답 (Response)

    HTTP/1.1 200 OK
    {
      "result_code":0
    }

     

    엔지엠 에디터를 실행하고, 아래와 같이 설정해줍니다.

    • API 주소: https://kapi.kakao.com/v2/api/talk/memo/default/send
    • Http 요청 메소드: POST
    • 컨텐츠 처리 옵션: Json
    • 헤더 목록
      - ParameterName: Authorization
      - ParameterValue: Bearer <Access Token>
    • 파라메터 목록
      - ParameterName: template_object
      - ParameterValue: {
              "object_type": "text",
              "text": "텍스트 영역입니다. 최대 200자 표시 가능합니다.",
              "link": {
                  "web_url": "http://ngmsoftware.com",
                  "mobile_web_url": "http://ngmsoftware.com"
              },
              "button_title": "바로 확인"
          }

     

    실제 테스트에서는 카카오톡의 인가 코드를 받고, 이 코드로 다시 토큰을 받아야 합니다. 이 토큰을 사용해서 메시지를 보낼 수 있습니다. 웹서버를 가지고 있다면 이 테스트를 완료할 수 있습니다. 내 앱에서 카카오 로그인이 ON 상태여야 합니다. 카카오 로그인 API를 활용하면 사용자들이 번거로운 회원 가입 절차 대신, 카카오톡으로 서비스를 시작할 수 있습니다. 상태가 OFF일 때도 카카오 로그인 설정 항목을 변경하고 서버에 저장할 수 있습니다. 상태가 ON일 때만 실제 서비스에서 카카오 로그인 화면이 연결됩니다.

    MwNqbyY.png

     

     

    Rest API를 사용하기 때문에 클라이언트 시크릿 키도 필요합니다. 좌측의 보안 탭으로 이동한 후 키를 생성하고 활성화 하세요.

    t5JfCli.png

     

     

    인가 코드를 받기 위해 홈페이지에 아래 코드를 html로 만들어서 업로드하세요.

    <a 
    href="https://kauth.kakao.com/oauth/authorize
    ?client_id=<REST API 키>
    &redirect_uri=<Site URL>/oauth
    &response_type=code">인가 코드 받기</a>

     

    사이트에서 페이지를 열면 아래와 같이 표시됩니다. 인가 코드 받기를 클릭하면 코드를 받을 수 있습니다.

    t4X1yIK.png

     

     

    발급 받은 인가 코드를 복사해두고, 토큰 받는 html 문서를 만듭니다.

    <form action="https://kauth.kakao.com/oauth/token" method="post">
    <input type="hidden" id="grant_type" value="authorization_code" />
    <input type="hidden" id="client_id" value="<REST API 키>" />
    <input type="hidden" id="redirect_uri" value="<Site URL>/oauth" />
    <input type="hidden" id="code" value="<인가 코드>" />
    <input type="hidden" id="client_secret" value="<클라이언트 시크릿 키>" />
    <input type="submit" value="토큰 받기">
    </form>

     

     

    실행하면 POST로 토큰을 요청하게 됩니다.

    guif4Xd.png

     

     

    토큰을 받으면 엔지엠 에디터에서 나에게 메시지 보내기를 처리할 수 있습니다. 카카오톡 Open API는 자동화된 소프트웨어(매크로나 RPA등등...)로 인해 서버에 부담이 되는걸 잘 알고 있을겁니다. 그래서, 카카오톡 메시지나 카카오 스토리등등... 대부분의 서비스가 사업자 정보를 요구하고 사용하기가 상당히 까다롭게 설계되어 있습니다. 텔레그램이나 다른 Open API랑 비교해보면... 이걸 사용하라고 만든건가 싶을정도예요^^; 그래도, 마켓에 올라간 앱은 간단하게 처리할 수 있기도 합니다. 아무튼 메시지를 보내면 카카오톡으로 보낸 메시지가 전달되는걸 알 수 있습니다.

    Xphnh9Y.png

     

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

     

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

    댓글목록

    등록된 댓글이 없습니다.