私は、App EngineにエンドポイントAPIをデプロイしています。 Google API Explorerを使用して、ログインする必要のないAPIメソッドへのリクエストに問題はありません。私が使用しているURLは次のとおりです。Google API Explorerを使用して、OAuthを使用して自分のApp Engineエンドポイントをテストするにはどうすればよいですか?
https://developers.google.com/apis-explorer
@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メソッドを呼び出して立ち往生しています/?base=https://[MY_APP_ID].appspot.com/_ah/api
は、この一つとして、ログインします
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."
}
}
エンドポイントは、信頼できるテスターのフェーズにいたとき、私は覚えてそこのOAuth2遊び場での手動ステップは、アクセストークンまたは一部のようなもののトークンの代わりにIDを取得すること。それが依然として必要な場合は、そのことについての言及がEndpointsのドキュメントから消えているように見えます。また、APIエクスプローラでトークンを交換する方法もあります。
ああ、OAuthプレイグラウンド(https://developers.google.com/oauthplayground)をAPIコンソールのリダイレクトURIのリストに追加しました。 – Eliot