Ошибка входа в LinkedIn для Android: ошибка: не удалось получить основные данные профиля. - PullRequest
0 голосов
/ 24 января 2019

Я реализовал логин в моем проекте, и он работал нормально.Но вдруг неделю назад он перестает работать и показывает сообщение об ошибке, что не удалось получить основные данные профиля.Некоторые другие разработчики Android также сталкиваются с той же проблемой, и это также происходит для разработчиков iOS.После отладки я обнаружил, что получаю значение «AccessToken», равное нулю.

Вот мой метод onClick, в этом методе onAuthSuccess вызывается.

            binding.framelayoutLinkedin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                LISessionManager.getInstance(getApplicationContext()).init(LoginActivity.this, buildScope()
                        , new AuthListener() {
                            @Override
                            public void onAuthSuccess() {
                                fetchBasicProfileData();
                            }

                            @Override
                            public void onAuthError(LIAuthError error) {
                                Toast.makeText(context, "Failed to authenticate with LinkedIn. Please try again.", Toast.LENGTH_SHORT).show();
                            }
                        }, true);
            }
        });

onActivityResult

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    LISessionManager.getInstance(getApplicationContext()).onActivityResult(this, requestCode, resultCode, data);
}

buildScope

private static Scope buildScope() {
    return Scope.build(Scope.R_BASICPROFILE, Scope.R_EMAILADDRESS, Scope.W_SHARE);
}

А вот метод fetchBasicProfileData в этом onApiError вызывается всякий раз, когда я пытаюсь извлечьданные.

private void fetchBasicProfileData() {

    String url = "https://api.linkedin.com/v1/people/~:(id,first-name,last-name,headline,public-profile-url,picture-url,email-address,picture-urls::(original))";

    APIHelper apiHelper = APIHelper.getInstance(getApplicationContext());
    apiHelper.getRequest(this, url, new ApiListener() {
        @Override
        public void onApiSuccess(com.linkedin.platform.listeners.ApiResponse apiResponse) {

            progressDialog.show();
            getFirebaseTokenId();
            try {
                JSONObject jsonObject = apiResponse.getResponseDataAsJson();
                String fullName = jsonObject.getString("firstName") + " " + jsonObject.getString("lastName");
                getLoginLinkedIn(jsonObject.getString("id"), fullName,
                        userToken, jsonObject.getString("emailAddress"), "1",
                        jsonObject.getString("pictureUrl"));
                //    Toast.makeText(context, jsonObject.getString("pictureUrl"), Toast.LENGTH_SHORT).show();
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }

        @Override
        public void onApiError(LIApiError liApiError) {

            Log.e("", "Fetch profile Error   :" + liApiError.getLocalizedMessage());
            Toast.makeText(context, "Failed to fetch basic profile data. Please try again.", Toast.LENGTH_SHORT).show();
        }
    });
}
...