-
Kakao API - Flutterflutter 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
🅐 앱 아이콘: 서비스 로고 또는 앱 아이콘으로 등록, 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 생성됨
추가 기능을 이용 가능
- 카카오비즈니스 관리자센터에서 동일한 사업자 정보로 등록된 비즈니스 채널과 연결할 수 있습니다.
- 카카오 로그인 동의 항목 중 [이메일(account_email)] 항목을 검수 과정 없이 [필수 동의]로 설정할 수 있습니다.
- 와일드카드 문자를 포함한 서브 도메인을 설정할 수 있습니다.
- 카카오싱크를 이용할 수 있습니다.
- 친구 목록 가져오기를 이용할 수 있습니다.
- 카카오톡 메시지 보내기를 이용할 수 있습니다.
카카오 로그인 설정
작성자의 경우 링크를 카카오톡으로 공유 하는 기능을 넣었다
먼저 카카오를 초기화 시켜준다
// 초기화 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