ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kakao API - Flutter
    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');
          }
        }

     


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

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

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

     

     

    사진과 같이 등록해야함

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

     

    반응형

    'flutter' 카테고리의 다른 글

    (구)Twitter (현)X 로그인 구현 - Flutter  (0) 2024.08.09
    GetX 추가 정리 - 2023.12.15  (0) 2023.12.15
    receive_sharing_intent 환경 셋팅 관련 IOS 오류  (0) 2023.05.11
    위젯(Widget) 개인 정리  (0) 2023.04.11
    FLutter 개인 정리  (0) 2023.04.11

    댓글

Designed by Tistory.