У меня есть API конечных точек, развернутый в App Engine. У меня нет проблем с использованием Google API Explorer для запросов к API-методам, для которых НЕ требуется вход в систему. URL-адрес, который я использую для этого:Как использовать Google API Explorer для тестирования моих собственных конечных точек приложения с использованием OAuth?
https://developers.google.com/apis-explorer /?base=https://[MY_APP_ID].appspot.com/_ah/api
Где я застрял в вызове методов API, которые требуют, чтобы пользователь вошел в систему, например, как этот:
@ApiMethod(name = "config.get",
clientIds = {"[MY_CLIENT_ID].apps.googleusercontent.com", "com.google.api.server.spi.Constant.API_EXPLORER_CLIENT_ID"},
audiences = {"[MY_APP_ID].appspot.com"},
scopes = {"https://www.googleapis.com/auth/userinfo.email"})
public Config getConfig(User user) throws OAuthRequestException {
log.fine("user: " + user);
if (user == null) {
throw new OAuthRequestException("You must be logged in in order to get config.");
}
if (!userService.isUserAdmin()) {
throw new OAuthRequestException("You must be an App Engine admin in order to get config.");
}
...
В API Explorer есть переключатель в правом верхнем углу, который при щелчке позволяет указать области и авторизовать. Я делаю это с проверкой только области userinfo.email. Это не имеет значения. Ответ я получаю от моего вызова:
503 Service Unavailable
- Show headers -
{
"error": {
"errors": [
{
"domain": "global",
"reason": "backendError",
"message": "java.lang.IllegalStateException: The current user is not logged in."
}
],
"code": 503,
"message": "java.lang.IllegalStateException: The current user is not logged in."
}
}
Назад, когда Endpoints был в Доверенной фазе Tester, я помню, чтобы быть ручной шаг в oauth2 Playground получить идентификатор маркеров вместо маркеров доступа или некоторой такой вещи , Если это по-прежнему требуется, любое упоминание об этом, похоже, исчезло из документов Endpoints сейчас, и теперь я вижу способ поменять токены в API-интерфейсе API.
О, и я также добавил игровую площадку OAuth (https://developers.google.com/oauthplayground) в список URI переадресации в консоли API. – Eliot