Я занимаюсь разработкой приложения для Android и мне нужно получить информацию о себе от Google, но я всегда получаю код ответа 401 или 403. Что я делаю не так?Вот мой код:
private static final String GOOGLE_AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/plus.me";
Я получаю токен oauth (примечание ... приведенный ниже код сокращен):
Account googleAccount = (AccountManager) getSystemService(ACCOUNT_SERVICE).getAccountsByType("com.google")[0];
final Bundle bundle = manager.getAuthToken(googleAccount, GOOGLE_AUTH_TOKEN_TYPE, true, null, null).getResult();
String authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN);
Пока все хорошо ... У меня теперь естьтокен, так что все выглядит хорошо здесь.
Теперь получите мне информацию:
String GOOGLE_ME_URL = "https://www.googleapis.com/plus/v1/people/me";
final DefaultHttpClient client = new DefaultHttpClient();
final HttpGet request = new HttpGet(GOOGLE_ME_URL);
request.addHeader("Authorization", "OAuth=" + authToken);
final HttpResponse response = client.execute(request);
Это дает код ответа 401.
Я также пытался:
final DefaultHttpClient client = new DefaultHttpClient();
final HttpGet request = new HttpGet(GOOGLE_ME_URL + "?access_token=" + authToken);
final HttpResponse response = client.execute(request);
Это дает код ответа 403. - Что-то вроде «Превышен дневной лимит. Пожалуйста, зарегистрируйтесь».
Что я делаю не так?что я пропустил?Как это сделать?
Спасибо
// Правки ниже Еще одно исследование: я добавил проект в code.google.com/apis/console, взял сгенерированный оттуда ключ и вставилв URL, например: https://www.googleapis.com/plus/v1/people/me?key=my_generated_key&access_token=" + authToken.Теперь звонок работает нормально, и я получаю ответ 200 с правильной информацией.Но я действительно не хочу использовать этот метод, если мне не нужно, и в соответствии с Google мне не нужно "• Если запрос требует авторизации (например, запрос личных данных человека), то он должен включатьтокен OAuth 2.0. Он также может включать ключ API, но это не обязательно ».- от developers.google.com/+/api/oauth.
Другое дело: если я попробую другой URL-адрес, например "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=" + authToken, он будет работать нормально.