티스토리 뷰

macOS, iOS

[iOS] 카카오 공유하기

SweetDev 2021. 5. 6. 13:40

https://developers.kakao.com/docs/latest/ko/message/common

 

Kakao Developers

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

developers.kakao.com

카카오 링크 API와 카카오톡 리스트 API가 다르다. 원하는걸 정확하게 쓰자!

카카오톡 메시지 API는 카카오톡 모듈인 TalkApi가 제공합니다. 따라서 카카오톡 메시지 API를 사용하려면 카카오 로그인 모듈 KakaoSDKUser, 사용자 인증 모듈 KakaoSDKAuth, 카카오톡 모듈 KakaoSDKTalk을 모두 설치해야 합니다. 모듈 설치 방법은 설치하기를 참고합니다.

=> pod으로 설치하면 된다!!

 

 

외부 라이브러리 디펜던시(External library dependency)

iOS SDK를 설치하면 SDK에 필요한 외부 라이브러리가 자동으로 설치됩니다.

=> 그래서 앱에서 Alamofire을 안쓰려던 내 계획이 실패했다... ㅠ

 

Info.plist에 추가해준다. 

 

https://developers.kakao.com/docs/latest/ko/message/ios-link#default-template-msg

기본 템플릿으로 보내기

import KakaoSDKLink

 

메시지: 카카오톡

  • Legacy: KOSessionTask를 통해 API 호출
  • 최신 버전
    • KakaoSDKTalk 모듈의 TalkApi를 통해 API 호출
    • 카카오 로그인 구현 필요

 

NameLegacy APIAPI

나에게 기본 메시지 보내기 talkMemoSendTaskWithTemplate:template: sendDefaultMemo(templatable:)
나에게 스크랩 메시지 보내기 talkMemoSendTaskWithURL:url:templateId: sendScrapMemo(requestUrl:templateId:)
나에게 사용자 정의 메시지 보내기 talkMemoSendTaskWithTemplateId:templateId: sendCustomMemo(templateId:)
친구에게 기본 메시지 보내기 sendMessageToFriendsWithTemplate:template: sendDefaultMessage(templatable:receiverUuids:)
친구에게 스크랩 메시지 보내기 sendMessageToFriendsTaskWithURL:url:templateId: sendScrapMessage(requestUrl:templateId:receiverUuids:)
친구에게 사용자 정의 메시지 보내기 sendMessageToFriendsTaskWithTemplateId:templateId: sendCustomMessage(templateId:receiverUuids:)

 

// 코드

 

var kakaoButtonAction: () -> Void = {
    // templatable은 메시지 만들기 항목 참고
    let title = "피드 메시지"
    let description = "피드 메시지 예제"

    let feedTemplateJsonStringData =
      """
      {
          "object_type": "feed",
          "content": {
              "title": "딸기 치즈 케익",
              "description": "#케익 #딸기 #삼평동 #카페 #분위기 #소개팅",
              "image_url": "http://mud-kage.kakao.co.kr/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
              "link": {
                  "mobile_web_url": "https://developers.kakao.com",
                  "web_url": "https://developers.kakao.com"
              }
          },
          "social": {
              "comment_count": 45,
              "like_count": 286,
              "shared_count": 845
          },
          "buttons": [
              {
                  "title": "웹으로 보기",
                  "link": {
                      "mobile_web_url": "https://developers.kakao.com",
                      "web_url": "https://developers.kakao.com"
                  }
              },
              {
                  "title": "앱으로 보기",
                  "link": {
                      "android_execution_params": "key1=value1&key2=value2",
                      "ios_execution_params": "key1=value1&key2=value2"
                  }
              }
          ]
      }
      """.data(using: .utf8)!

    // templatable은 메시지 만들기 항목 참고
    if let templatable = try? SdkJSONDecoder.custom.decode(FeedTemplate.self, from: feedTemplateJsonStringData) {
      LinkApi.shared.defaultLink(templatable: templatable) { linkResult, error in
        if let error = error {
          print(error)
        }
        else {
          print("defaultLink() success.")

          if let linkResult = linkResult {
            UIApplication.shared.open(linkResult.url, options: [:], completionHandler: nil)
          }
        }
      }
    }
  }
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함