Android Facebook SDK 3.0 在登录时给出“remote_app_id 与存储的 id 不匹配”

androidFacebook

1个回答

写回答

maxyzd

2025-06-22 03:50

+ 关注

Android
Android

在使用Android Facebook SDK 3.0进行登录时,有时会遇到一个错误提示:“remote_app_id 与存储的 id 不匹配”。这个错误通常发生在开发者在应用中使用了错误的App ID或者没有正确配置应用的哈希密钥。本文将为大家介绍如何解决这个问题,并提供相关案例代码。

错误原因:

当我们在使用Android Facebook SDK 3.0进行登录时,我们需要在应用中配置正确的App ID以及哈希密钥。App ID是Facebook为每个应用分配的唯一标识符,而哈希密钥是用于认证应用的安全凭证。当我们在应用中使用了错误的App ID或者没有正确配置哈希密钥时,就会导致“remote_app_id 与存储的 id 不匹配”错误的发生。

解决方法:

要解决这个问题,我们需要确保在应用中正确配置了App ID和哈希密钥。首先,我们需要在Facebook开发者平台上创建一个应用,并获取到正确的App ID。然后,我们需要生成应用的哈希密钥,并将其添加到Facebook开发者平台中。

要生成应用的哈希密钥,我们可以使用以下代码:

try {

PackageInfo info = getPackageManager().getPackageInfo(

"com.example.yourapp",

PackageManager.GET_SIGNATURES);

for (Signature signature : info.signatures) {

MessageDigest md = MessageDigest.getInstance("SHA");

md.update(signature.toByteArray());

Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));

}

} catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

} catch (NoSuchALGorithmException e) {

e.printStackTrace();

}

上述代码将会生成一个哈希密钥,并将其输出到Logcat中。我们需要将这个哈希密钥复制到Facebook开发者平台的应用设置中。

案例代码:

以下是一个使用Android Facebook SDK 3.0进行登录的简单示例代码:

Java

import Android.content.Intent;

import Android.os.Bundle;

import Android.util.Log;

import Androidx.appcompat.app.AppCompatActivity;

import com.Facebook.CallbackManager;

import com.Facebook.FacebookCallback;

import com.Facebook.FacebookException;

import com.Facebook.login.LoginResult;

import com.Facebook.login.widget.LoginButton;

public class MAInActivity extends AppCompatActivity {

private CallbackManager callbackManager;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setcontentView(R.layout.activity_mAIn);

callbackManager = CallbackManager.Factory.create();

LoginButton loginButton = findViewById(R.id.login_button);

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

@Override

public void onSuccess(LoginResult loginResult) {

// 登录成功回调

Log.d("Facebook Login", "Success");

}

@Override

public void onCancel() {

// 用户取消登录回调

Log.d("Facebook Login", "Cancel");

}

@Override

public void onError(FacebookException error) {

// 登录发生错误回调

Log.e("Facebook Login", "Error", error);

}

});

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

callbackManager.onActivityResult(requestCode, resultCode, data);

}

}

在上述代码中,我们创建了一个CallbackManager对象来处理登录结果。然后,我们将LoginButton与CallbackManager关联,并注册一个FacebookCallback来处理登录成功、取消和错误的情况。

通过正确配置应用的App ID和哈希密钥,我们可以解决“remote_app_id 与存储的 id 不匹配”的错误。在使用Android Facebook SDK 3.0进行登录时,确保使用正确的App ID和哈希密钥是非常重要的。希望本文对大家解决这个问题有所帮助。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号