Facebook登录GraphResponse错误Android



我正在按照Facebook文档实现Facebook登录,以便在我的android应用程序中只获取AccessToken(而不是其他用户信息(。但每次我登录时都会出现一个奇怪的错误。。我为我的应用程序使用了客户端(在开发模式中(提供的api密钥,但它出现了同样的错误,然后我创建了一个具有相同细节的facebook应用程序,并使其实时运行,因为我看到了一些解决方案,建议该应用程序应该是实时的,所以我创建了个实时应用程序并在我的端部检查了facebook Id凭据,所有这些都很好,但我在尝试登录时仍然会遇到这个错误。即,当我点击登录按钮时,进度显示出来,它消失了,我收到一个错误,说明

错误

com.mtlab.test E/GraphResponse:{HttpStatus:404,errorCode:803,subErrorCode:-1,errorType:OAuthException,errorMessage:(#803(某些您请求的别名不存在:21312289922111}

渐变:

implementation 'com.facebook.android:facebook-login:[4,5)'

我用来登录的代码是:

callbackManager = CallbackManager.Factory.create();
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken token = loginResult.getAccessToken();
if(token!=null){
FacebookAuthToken = token.toString();
sendFacebookDataToServer();
}
}
@Override
public void onCancel() {
// App code
Log.d("Fb","canceled");
}
@Override
public void onError(FacebookException exception) {
// App code
Log.d("Fb","error");
}
});

在清单中:

<meta-data
tools:replace="android:value"
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<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="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>

我遵循了文件中提到的相同过程,但什么也没发生。

使用此代码。。。。。我也用过。。在我的应用程序中运行良好。。。

CallbackManager callbackManager;
LoginManager loginManager;

在onCreate 中

FacebookSdk.sdkInitialize(getApplicationContext());            
FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
setContentView(R.layout.your_layout);
callbackManager = CallbackManager.Factory.create();
loginManager = com.facebook.login.LoginManager.getInstance();
loginManager.registerCallback(callbackManager, this);

点击或在哪里打开Facebook

private void facebookLogin() {
loginManager.logInWithReadPermissions(this, Arrays.asList("email", "public_profile"));
}

在之后

@Override
public void onSuccess(final LoginResult loginResult) {
if (loginResult != null) {
Profile profile = Profile.getCurrentProfile();
if (profile != null) {
firstName = profile.getFirstName();
lastName = profile.getLastName();
social_id = profile.getId();
profileURL = String.valueOf(profile.getProfilePictureUri(200, 200));
Log.e(TAG, "social Id: " + profileURL);
}

GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.e("","token"+loginResult.getAccessToken().getToken());    //here is your access token             
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,first_name,name,last_name,email,gender,birthday");
request.setParameters(parameters);
request.executeAsync();
}
}
@Override
public void onCancel() {
Log.e("bug", "facebook sign in connection cancel");
}
@Override
public void onError(FacebookException error) {
UiHelper.showToast(this, "An error occur during Facebook Login");
Log.e("bug", "facebook sign in error" + error.toString());
}

应用内build.gradle文件

compile 'com.facebook.android:facebook-android-sdk:4.+'

清单

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

并添加

class YourActivity implements FacebookCallback<LoginResult> 

最新更新