flutter

Kakao API - Flutter

이나주니 2023. 6. 7. 10:54
반응형

kakao_flutter_sdk: ^1.4.2

기능 소개

메시지 API는 사용자가 카카오톡 친구에게 카카오톡 메시지를 보내는 기능을 제공

 

 

공유 API 흐름

카카오톡 공유 API는 서비스 클라이언트에서 카카오톡 앱을 실행시켜 카카오톡 메시지를 보냄

카카오톡 공유 API는 카카오가 제공하는 카카오톡 친구 또는 대화 목록 페이지를 띄워 사용자가 메시지를 보낼 수 있도록 함

따라서 서비스가 카카오톡 친구 정보를 출력하는 페이지를 직접 만들 필요가 없고, 모든 카카오톡 친구가 목록에 포함

 

 

 

메시지 API

 

카카오톡 메시지 API는 친구목록 가져오기 API 를 통해 받은 친구 정보 중 지정한 친구에게 메시지를 보내는 기능을 제공

https://developers.kakao.com/docs/latest/ko/kakaotalk-social/common

 

Kakao Developers

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

developers.kakao.com

 


 

 

🅐 앱 아이콘: 서비스 로고 또는 앱 아이콘으로 등록, 128*128 이하 크기 권장, 250KB 미만인 파일만 등록 가능

🅑 앱 이름: 서비스 이름

🅒 사업자명: 서비스의 사업자 이름

🅓 저장: 입력한 기본 정보로 앱 등록

애플리케이션 등록 시 입력하는 위 항목들은 [내 애플리케이션] > [일반] > [기본 정보]에 반영됩니다.

※기본 정보를 잘못 등록한 경우, [내 애플리케이션] > [일반] > [기본 정보] 메뉴에서 [수정] 버튼을 눌러 변경

 


 

App Key

 


android 플랫폼 등록

 

 

키 해시 등록

  • 1번 방법
  • 터미널에서 키 해시를 생성하려면 키 해시를 관리하는 키툴(keytool)이 필요합니다. Windows의 경우, Windows 라이브러리를 위한 OpenSSL을 다운로드해야 합니다.
MAC

디버그 키 해시
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64

릴리즈 키 해시
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Windows
디버그 키 해시
keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64

릴리즈 키 해시
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | PATH_TO_OPENSSL_LIBRARY\bin\openssl base64

 

  • 2번 방법
  • [Google Play Console] > [설정] > [앱 무결성] 메뉴의 [앱 서명키 인증서] 항목에서 [SHA-1 인증서 지문] 값을 복사

 

 

git bash 설치후

echo {PRINTCERT} | xxd -r -p | openssl base64

PRINTCERT 키는 SHA-1 인증서 지문

echo {7C:2C:FA:6F:75:D6:22:A7:A5:5C:24:87:1B:BF:52:90:D3:1A:FE:37} | xxd -r -p | openssl base64

 

androidMainfest.xml

<data android:host="kakaolink"
    android:scheme="kakao${네이티브키)" />

<activity
           android:name="com.kakao.sdk.flutter.AuthCodeCustomTabsActivity"
           android:exported="true">
           <intent-filter android:label="flutter_web_auth">
               <action android:name="android.intent.action.VIEW" />
               <category android:name="android.intent.category.DEFAULT" />
               <category android:name="android.intent.category.BROWSABLE" />
               <!-- 카카오 로그인 Redirect URI -->
               <data android:scheme="kakao${네이티브키)" android:host="oauth"/>
           </intent-filter>
       </activity>

 


ios 플랫폼 등록

 

앱스토어 id는 https://appstoreconnect.apple.com/ 접근 로그인후 해당 앱의 앱정보 클릭 - > AppleId 확인 가능

앱스토어 id 입력시 자동으로 마켓 URL 생성됨

추가 기능을 이용 가능

 

 

카카오 로그인 설정

 


작성자의 경우 링크를 카카오톡으로 공유 하는 기능을 넣었다

 

먼저 카카오를 초기화 시켜준다

// 초기화
  KaKao._init() {
    KakaoSdk.init(
      nativeAppKey: NATIVE_APPKEY,
      javaScriptAppKey: JAVASCRIPT_APPKEY,
    );
  }

NATIVE_APPKEY : 카카오 디벨롭 센터에 발급 받은 네이티브 키 입력

 

 

 

// 카카오톡 설치 여부 확인
    bool kakaoTalkSharingAvailable =
        await ShareClient.instance.isKakaoTalkSharingAvailable();

String title = subject;
Uri imageLink = Uri.parse("https://images.mypetlife.co.kr/content/uploads/2021/10/22152410/IMG_2087-scaled-e1634883900174-1024x739.jpg");
Link link = Link(
  webUrl: Uri.parse(share.url),
  mobileWebUrl: Uri.parse(share.url),
);

Content content = Content(
  title: title,
  imageUrl: imageLink,
  link: link,
);

FeedTemplate template = FeedTemplate(
  content: content,
  buttons: [
    Button(title: "강아지 사진 링크", link: link),
  ],
);


if (kakaoTalkSharingAvailable) {
      try {
        Uri uri = await ShareClient.instance.shareDefault(template: template);
        await ShareClient.instance.launchKakaoTalk(uri);
      } catch (error) {
        print('카카오톡 공유 실패 $error');
      }
    } else {
      try {
        Uri shareUrl =
            await WebSharerClient.instance.makeDefaultUrl(template: template);
        await launchBrowserTab(shareUrl, popupOpen: true);
      } catch (error) {
        print('카카오톡 공유 실패 $error');
      }
    }

 


테스트 하는도중 사이트를 연결할수 없다는듯한 에러가 나옴

이유는 카카오에서 보안상의 이유떄문. 공유되는 고정 도메인을 등록해야함

내 애플리케이션 > 앱설정 > 요약 정보 > 플랫폼 클릭

 

 

사진과 같이 등록해야함

이후 테스트 시 아래와 같이 공유 기능을 지원함

 

반응형