Facebook Android SDK FAQ 및 문제 해결

FAQ

Android 11에서는 프로젝트의 AndroidMainfest.xmlqueries 블록을 추가하면 문제를 해결할 수 있습니다.

<manifest package="com.example.app">
    <queries>
        <provider android:authorities="com.facebook.katana.provider.PlatformProvider" />
    </queries>
    ...
</manifest>
고유 링크

Facebook 앱 ID 하나를 여러 Android 앱에서 사용할 수 있습니다. 같은 앱 ID를 사용하여 다른 앱에서도 로그인, 공유 등의 작업을 할 수 있습니다.

알림 및 다른 방법을 통한 앱 열기 및 딥 링크에서는 단일 패키지 이름/클래스 이름 조합만 지원합니다.

여러 앱에서 딥 링크 지원을 원하는 경우 앱 링크를 참조하세요.

고유 링크

자체 strings.xml 파일에 원하는 언어로 번역을 제공하여 Android용 Facebook SDK의 문자열을 대체할 수 있습니다.

facebook/res/values/ 디렉터리의 strings.xml 파일에 SDK에서 사용하는 모든 문자열이 포함됩니다. 문자열 리소스의 이름은 명확해야 합니다.

자세한 내용은 Android 개발자 가이드: 리소스 현지화(영문)를 참조하세요.

고유 링크

SDK 다운로드에서 이전 SDK 버전을 다운로드할 수 있습니다.

고유 링크

네이티브 공유 대화 상자가 있는 Android용 Facebook SDK의 모든 릴리스에는 Facebook 앱용 APK도 포함되어 있습니다.

SDK 릴리스 3.14.1까지는 SDK 다운로드에 APK가 포함되어 있었지만, 그 이후로는 개별적으로 다운로드해야 합니다. APK는 다운로드 페이지에서 이용할 수 있습니다.

Android 에뮬레이터나 기기에서 Facebook APK를 설치하고 앱에서 네이티브 공유 대화 상자를 테스트하기만 하면 됩니다.

고유 링크

일반적으로 Android 라이브러리에서는 BuildConfig.DEBUG를 사용하여 앱이 디버그 모드에 있는지 판별할 수 있습니다. 그러나 Gradle의 버그로 인해 Android 라이브러리는 항상 DEBUG를 false로 설정하여 빌드합니다. 이에 대한 해결책으로 FacebookSdk.setIsDebugEnabled(boolean) 메서드를 사용하여 앱에서 디버그 모드를 직접 설정할 수 있습니다. 그러면 SDK에서 디버그 로깅이 가능합니다.

여러 다른 범주의 메시지를 로깅할 수 있도록 FacebookSdk.addLoggingBehavior(LogginBehavior)로 로깅 동작을 설정할 수도 있습니다. Android SDK 참조의 LoggingBehavior를 참조하세요.

고유 링크

공유 대화 상자는 사용자 액션 시 onSuccessonCancel로 콜백합니다.

  • 사용자가 정상적으로 공유하는 경우에는 onSuccess로 콜백합니다. 또한 사용자가 앱에 publish_actions 권한을 제공하는 경우 Sharer.Result 클래스에 postId 도 포함됩니다. 사용자가 Facebook 로그인을 사용하여 로그인하지 않은 경우 취소를 클릭하면 이 메서드도 호출됩니다.
  • 공유 대화 상자의 X 버튼을 클릭하거나, Facebook 로그인을 사용하여 로그인한 다음 취소를 클릭한 경우 onCancel로 콜백합니다.
고유 링크

문제 해결

게시 권한을 요청하면 다음과 같은 오류가 발생할 수 있습니다.

  • "세션: 대기 중인 요청이 있는 세션에 대한 새 권한을 요청했습니다." 또는
  • "요청이 대기 중인 동안 승인하려고 했습니다."

이 오류 메시지는 이전 요청이 완료되기 전에 앱에서 새 권한 요청을 시도 중임을 나타냅니다. 모든 권한 요청은 비동기식으로 처리되며 이전 요청이 완료되어야 새 권한을 요청할 수 있습니다.

SDK에서 제공하는 샘플 앱(예: Scrumptious 또는 Hello Facebook)에서 여러 단계를 통해 새 권한을 요청하는 방법을 확인하세요.

고유 링크

로그에 오류가 없으면 요청이 실행된 적이 없기 때문일 가능성이 큽니다. GraphRequest를 실행하려면 executeAsync 메서드를 호출하세요.

고유 링크

로그인하거나 네이티브 공유 대화 상자를 사용하려면 앱에 서명하는 데 사용하는 키에 대한 정보를 Facebook에 알려야 합니다.

즉, 앱에 서명하는 데 사용하는 키의 SHA-1 해시인 키 해시를 알려야 합니다. 일반적으로 개발과 디버그에 하나, 릴리스에 하나 등 두 개 이상의 서로 다른 키가 사용됩니다. 앱의 설정 페이지에서 두 값이 모두 추가되었는지 확인하세요.

자세한 내용은 Android SDK 시작하기의 개발 키 해시 만들기를 참조하세요.

고유 링크

가장 일반적인 이유는 AndroidManifest.xmlContentProvider를 설정하지 않았기 때문입니다. 앱 ID를 사용하여 AndroidManifest.xml 파일에 추가하세요. Android에서 공유 - 전제 조건을 참조하세요.

고유 링크