kakaoSchemeStream 수신 범위 문의

문의 시 사용하시는 SDK 버전 정보와 플랫폼(Android / iOS) 및 디벨로퍼스 앱ID를 알려주세요.


kakao_flutter_sdk_user v1.8.0 사용 중입니다. iOS 기준으로 문의 드립니다.

공식 문서를 보면
“카카오톡 공유, 카카오톡 메시지 커스텀 URL 스킴 수신 방법에 대해 안내합니다.” 라고 되어 있습니다.

혹시 수신 범위가 위 2가지로 고정인건지 아니면 kakaoxxxxx://oauth?code=xxx 와 같은 로그인 결과에 대한 스킴도 수신 범위 내 포함인지 문의 드립니다.

kakaoxxxxx://oauth
기재하신 위내용과 아래 내용은 같은 내용인데요.
kakao${YOUR_NATIVE_APP_KEY}://${PRODUCT_NAME}

카카오톡에서 개발하신 앱으로 되돌아가는데 사용되는 스킴이고

Android | Kakao Developers Android
시작하기 | Kakao Developers 시작하기

수신 범위에 포함입니다.

확인 감사합니다.

그럼 카카오톡 로그인을 구현(UserApi.instance.loginWithKakaoTalk())하고
실제 kakaoSchemeStream을 통해 수신 받으려면 별도 설정이 필요한 부분이 있나요?

공식 문서 기준으로 작업은 한거 같은데 실제 데이터가 들어오진 않습니다.

네, 커스텀 URL 스킴 설정이 필요합니다.

시작하기 | Kakao Developers 시작하기

앱ID 알려주시면 특이점 있나 확인해보겠습니다.

개발 중인 앱의 앱ID는 600306 입니다.

로그상 기재하신 테스트앱의 리다이렉트 스킴으로 정상 처리되었습니다.

kakao4a7e6e2**********f2b582://oauth

오늘 오전 10시 부터는 앱으로 돌아가 액세스 토큰도 발급 받은 것으로 확인되는데요.
정상 수신 받다가 기능 변경 후, 수신 못받은 상황이실까요?

UserApi.instance.loginWithKakaoTalk()을 통해 로그인 관련 모든 기능은 정상 동작은 하고 있습니다.
다만 문의 드린 내용은 kakaoSchemeStream.listen((event) { }) 을 통한 데이터 수신 가능 여부 입니다.

네, Flutter SDK 초기화 이후 시점에 호출해야 하는 것 말고는 별다른 사항 없는데요.
관련 코드 블럭 기재 부탁드려요.

대략적인 구성은 아래와 같습니다.

void kakaoLogin() {
	kakaoSchemeStream.listen((url) {
	  // url에 커스텀 URL 스킴이 할당됩니다. 할당된 스킴의 활용 코드를 작성합니다.
	  print('kakaoSchemeStream: $url');
	}, onError: (e) {
	  // 에러 상황의 예외 처리 코드를 작성합니다.
	  print('kakaoSchemeStream e: $e');
	});

	OAuthToken _token = await UserApi.instance.loginWithKakaoTalk();
	print('로그인 성공');
}
AppDelegate

override func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
	if url.absoluteString.hasPrefix("kakao") {
      return super.application(application, open: url, options: options)
  }

	return false
}

@tazan83
SDK담당자분에게 확인해보니 카카오 로그인으로 호출되는 경우는 처리 하지 않는다고 합니다.

카카오톡 공유, 카카오톡 메시지 커스텀 URL 스킴 수신 방법에 대해 안내합니다.

가이드에 표기된 것과 같이 카카오톡 메시지나 공유 버튼 링크 등을 통해 외부에서 개발하신 앱을 호출 할때 수신하기 위한 기능이라고 합니다.

그리고 개발하신 앱이 실행안된 상황에서 스킴을 수신 받으려면 아래 함수를 이용해야하고

(1) String? url = await receiveKakaoScheme();

앱이 실행되어서 백그라운드에 떠있는경우는 아래와 같이 수신 받는다고 합니다.

(2) kakaoSchemeStream.listen((url) { ~~~

참고 부탁드려요.

1개의 좋아요

확인 감사합니다!