繁体   English   中英

Facebook登录GraphResponse错误Android

[英]Facebook Login GraphResponse Error Android

我正在遵循Facebook文档来实现Facebook登录,以仅将AccessToken (而不是其他用户信息)获取到我的android应用中。 但是每次登录时,它都会出现一个奇怪的错误。.我正在为我的应用程序使用客户端(在开发模块中)提供的api密钥,但是它具有相同的错误,因此我创建了一个具有相同详细信息的facebook应用程序,并将其作为我已经看到一些建议使用该应用程序的解决方案,因此我创建了一个实时应用程序并在末尾检查了Facebook ID凭据都很好,但是尝试登录时仍然出现此错误。 即当我单击LoginButton进度显示出来,它消失了,我得到一个错误说明

错误

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);

Onclick或您想打开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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM