web-dev-qa-db-ja.com

android

Facebookでのログインに最新のFacebook-sdkを使用しています

_ implementation 'com.facebook.Android:facebook-login:[5,6)'
_

_custom button_を使用してFacebookでログインしてみてください。_Facebook-Android-sdk_ githubの問題でもこのエラーが発生します https://github.com/facebook/facebook-Android-sdk/issues/58 =この問題は解決されたかどうか。

Facebookネイティブアプリがインストールされている場合はダイアログを開きたいので、最初にlogoutLoginManager.getInstance().logOut()を使用します

私はLoginManager.getInstance()のようなデフォルトのログインマネージャーを使用し、次にログインしてログアウトしますが、ログアウト後にこのAccessToken.getCurrentAccessToken()のようにトークンをチェックすると、まだ存在します

以下は私のコードです:

_callbackManager =
    CallbackManager.Factory.create()

    LoginManager.getInstance().logOut()
loginManager = LoginManager.getInstance()

LoginManager.getInstance()
    .registerCallback(callbackManager, object : FacebookCallback<LoginResult> {
        override fun onSuccess(loginResult: LoginResult) {
            val graphRequest = GraphRequest.newMeRequest(loginResult.accessToken)
            { jsonObj, _ ->

            }
            val parameters = Bundle()
            parameters.putString("fields", "id,name,email")
            graphRequest.parameters = parameters
            graphRequest.executeAsync()
        }

        override fun onCancel() {
        }

        override fun onError(error: FacebookException) {
            var msg = ""

        }
    })
loginManager.logInWithReadPermissions(
    this@SignUpActivity,
    listOf("email", "public_profile")
)
_

Manifestファイル

_<meta-data Android:name="com.facebook.sdk.ApplicationId"
    Android:value="@string/facebook_app_id"/>

<activity Android:name="com.facebook.FacebookActivity"
    Android:configChanges=
        "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    Android:label="@string/app_name" />
_
3
Dinesh

最後に、私は多くの研究の後に解決策を見つけ、多くの答えを読みました。

アプリが開発モードの場合、開発キーハッシュを生成します

Windowsの場合は、次のコマンドを使用します。

  • openssl-for-windows opensslライブラリからopenSSlをダウンロードして抽出します。
  • C:/にフォルダー-OpenSSLを作成し、そこに抽出したコードをコピーします。
  • developmentキーハッシュを生成するには、Java SDKフォルダーのコマンドプロンプトで次のコマンドを実行します
  • USERNAMEをユーザー名で変更
  • このコマンドは、開発環境に固有の28文字のキーハッシュを生成します。コピーしてFacebook開発者サイトのフィールドに貼り付けます

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME\.Android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary | "C:\OpenSSL\bin\openssl" base64


アプリがReleaseモードの場合、Release Key Hashを生成します

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64

これがあなたの時間を節約することを願っています...

0
Dinesh