Facebook Логин ГрафикОтветы Ошибка Android - PullRequest
0 голосов
/ 27 октября 2018

Я следую документации 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}

Gradle:

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>

Я следовал тому же процессу, упомянутому в документации, но ничего не произошло.

1 Ответ

0 голосов
/ 27 октября 2018

Используйте этот код ..... я также использовал его ... отлично работает в моем приложении ...

 CallbackManager callbackManager;
 LoginManager loginManager;

InCreate

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> 
...