안드로이드 카카오 로그인 문제

카카오 로그인을 할때, 선택사항 동의를 하려고 외부 브라우저로 나간 뒤 '동의하고 계속하기’를 눌러도 아무런 반응이 없습니다.
아마도 scheme 문제인거 같은데, 도통 안되는 이유를 모르겠습니다.

동의 요청한 항목은 친구목록 읽기 입니다.

<queries>
    <package android:name="com.kakao.talk" />
</queries>

<application
    android:name=".GlobalApplication"
    android:allowBackup="true"
    android:dataExtractionRules="@xml/data_extraction_rules"
    android:fullBackupContent="@xml/backup_rules"
    android:icon="@mipmap/ic_launcher_amadiary"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_amadiary"
    android:supportsRtl="true"
    android:theme="@style/Theme.App.Starting"
    android:usesCleartextTraffic="true"
    android:requestLegacyExternalStorage="true"
    android:defaultToDeviceProtectedStorage="true"
    android:preserveLegacyExternalStorage="true"
    android:requestRawExternalStorageAccess="true">

    <activity
        android:screenOrientation="portrait"
        android:name=".Activitys.AlarmActivity"
        android:exported="false" />
    <activity
        android:screenOrientation="portrait"
        android:name=".Activitys.LoginActivity"
        android:exported="false" />
    <activity
        android:screenOrientation="portrait"
        android:name=".Activitys.TutorialActivity"
        android:exported="false" />
    <activity
        android:screenOrientation="portrait"
        android:name=".Activitys.NavigationActivity"
        android:exported="false" />
    <activity
        android:screenOrientation="portrait"
        android:name=".MainActivity"
        android:hardwareAccelerated="true"
        android:exported="false"/>
    <activity
        android:screenOrientation="portrait"
        android:name=".Fragments.Register.RegisterActivity"
        android:exported="false" />
    <activity
        android:name=".SplashScreen"
        android:configChanges="orientation|screenSize|keyboardHidden"
        android:exported="true"
        android:hardwareAccelerated="true"
        android:screenOrientation="portrait"
        android:theme="@style/SplashActivityTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:scheme="kakaolink"
                android:host="kakao70d06eef07bcaddfaa67143671a39811" />
        </intent-filter>
    </activity>

    <meta-data
        android:name="com.kakao.sdk.AppKey"
        android:value="@string/kakao_app_key" />

안녕하세요

설정 가이드 확인해보시면 AndroidManifest.xml 파일에 로그인 처리를 할 수 있는 com.kakao.sdk.auth.AuthCodeHandlerActivity를 등록해야 합니다.

가이드 확인해서 등록하시면 정상적으로 동작할 것으로 보여요

넘어가지는 하는데요, 문제는 친구목록을 가지고 오려고 했는데 아무런 정보를 받지 못했습니다.

요청 코드:
TalkApiClient.instance.friends { friends, error →
if (error != null) {
Log.e(“kakao_test”, “카카오톡 친구 목록 가져오기 실패”, error)
} else {
Log.d(“kakao_test”, “카카오톡 친구 목록 가져오기 성공 \n${friends!!.elements!!.joinToString(”\n")}")

                    if (friends.elements!!.isEmpty()) {
                        Log.e("kakao_test", "메시지를 보낼 수 있는 친구가 없습니다")
                    } else {
                        Log.d("kakao_test", "카카오톡 친구 목록 가져오기 성공 \n${friends!!.elements!!.joinToString("\n")}")
                    }
                }
            }

동의 후 가져왔다면 Log.d(“kakao_test”, “카카오톡 친구 목록 가져오기 성공 \n${friends!!.elements!!.joinToString(”\n")}")
가 실행되야 되는거 아닌가요?

TalkApiClient.instance.friends { friends, error → 
    // 생략
}

위의 코드를 실행했을 때 어떠한 콜백도 전달받지 못했다는 것으로 이해했습니다. 앱 id 알려주시면 서버 로그 확인해볼게요.
앱 id는 카카오 디벨로퍼스에서 확인할 수 있는 숫자 값입니다

1012532 입니다.

서버 로그를 확인해보면 TalkApiClient.instance.friends 를 호출한 유저가 ‘카카오 서비스 내 친구목록(프로필사진, 닉네임, 즐겨찾기 포함)’ 항목에 동의를 하지 않았고, 추가 동의창이 뜬 것으로 보여요. 그 이후로 항목 동의를 받지는 않은 것으로 보이고 있습니다.

추가 동의창이 뜨고 ‘카카오 서비스 내 친구목록(프로필사진, 닉네임, 즐겨찾기 포함)’ 항목에 동의를 한 뒤에 동의하고 계속하기를 눌렀을 때 동의창이 사라진 후로 아무 콜백이 오지 않는건가요? 아니면 동의창 자체가 뜨지 않고 있나요? 만약 에러를 전달받은게 있다면 에러 로그 첨부 부탁드립니다

추가로 SDK 관련된 코드를 모두 첨부해주시면 이슈 파악에 더 도움이 될 것 같습니다.

현재 상황은 이렇습니다.

친구 목록을 호출 → 권한 요청 브라우저 뜸 → AuthCodeHandlerActivity로 scheme을 받음

인데요. scheme을 받은 이후에도, 그리고 AuthCodeHandlerActivity안에서 다시 친구 목록을 호출 시켜도
저 상황이 반복 될 뿐이네요

AuthCodeHandlerActivity는 직접 구현하는 Activity가 아니라 SDK에 구현되어있는 Activity라서 별도로 수정이 불가능한데요, AuthCodeHandlerActivity안에서 다시 친구 목록을 호출했다고 말씀하시는게 잘 이해가 가지 않네요ㅠㅠ

SDK 관련된 코드를 모두 첨부 부탁드립니다

아, 이유를 찾았습니다.
답변자님 말이 맞네요;;
가이드 그대로 Manifest에 com.kakao.sdk.auth.AuthCodeHandlerActivity를 추가 했어야 했는데, 그냥 액티비티를 만들었네요 ㅎㅎ;;

1개의 좋아요

혹시 하나만 더 물어봐도 되나요?
반환 받은 값이 ‘메시지를 보낼 수 있는 친구가 없습니다’
인데 이해가 안되는 부분은 제가 카카오톡 친구가 없는 것이 아닌데 왜 저렇게 뜰까요?

Faq 목록에 정리되어있는 내용인데요, 아래 내용 참고해보시면 좋을 것 같습니다

4. 친구API, 메시지API
4.1. 친구 api, 메시지 api 사용을 위한 체크 리스트
4.2. (가이드) 친구목록 조회 기준
4.3. 친구API, 메시지API 자주 겪는 에러
4.4. 친구API, 메시지API 권한 신청