Android + Google API OAuth необходимо ли регистрация разработчика?

Вводная:
Опыта в разработке крайне мало. Реализовал на Java работу с Google Sheets и Calendar через API. Пытаюсь перенести функционал в Android приложение.
Проблема:
Столкнулся с проблемой, что реализованная авторизация не подходит для Android.
Начал копать интернеты и документацию. Нашел, вроде, готовое решение. Попробовал запустить.
Получаю ошибку: signInResult:failed code=10
Ошибка гласит:
public static final int DEVELOPER_ERROR
The application is misconfigured. This error is not recoverable and will be treated as fatal. The developer should look at the logs after this to determine more actionable information.
Constant Value: 10

Не очень информативно. Особенно для новичка((
Код реализации:
private static final int RC_SIGN_IN = 9001;
    private GoogleSignInClient mGoogleSignInClient;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.button).setOnClickListener((View.OnClickListener) this);
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .build();
        mGoogleSignInClient = GoogleSignIn.getClient(this, gso);


    }

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                signIn();
                break;
            // ...
        }
    }

    private void signIn() {
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
        if (requestCode == RC_SIGN_IN) {
            // The Task returned from this call is always completed, no need to attach
            // a listener.
            Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
            handleSignInResult(task);
        }
    }

    private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
        try {
            GoogleSignInAccount account = completedTask.getResult(ApiException.class);

            // Signed in successfully, show authenticated UI.
            updateUI(account);
        } catch (ApiException e) {
            // The ApiException status code indicates the detailed failure reason.
            // Please refer to the GoogleSignInStatusCodes class reference for more information.
            Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
            updateUI(null);
        }
    }

    private void updateUI(@Nullable GoogleSignInAccount account) {
        if (account != null) {
            findViewById(R.id.button).setVisibility(View.GONE);
        } else {
            findViewById(R.id.button).setVisibility(View.VISIBLE);
        }
    }


Вопросы:
1. Возможно ли что ошибка связана с тем что не создан токен?
2. Обязательно для создания токена авторизации необходим сертификат разработчика?
3. Если вопросы выше не связаны с ошибкой, возможно у кого есть готовые решения?
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
@AndroidRS
Посмею предположить, что ошибка может крыться в том, что вы не указали отпечаток сертификата (SHA1)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы