Java 如何在google app engine端点中为用户对象获取访问令牌?

Java 如何在google app engine端点中为用户对象获取访问令牌?,java,google-app-engine,oauth-2.0,google-api,access-token,Java,Google App Engine,Oauth 2.0,Google Api,Access Token,我能够获得用户谷歌信息,如电子邮件和昵称。但是我想从scopehttps://www.googleapis.com/auth/userinfo.profile 要访问,我需要调用此 https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=XXX 这将返回包含概要文件图片链接的Json数据。 使用access_令牌对上述请求的响应示例 { "id": "123", "name": "Admin User",

我能够获得用户谷歌信息,如电子邮件和昵称。但是我想从scope
https://www.googleapis.com/auth/userinfo.profile

要访问,我需要调用此
https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=XXX

这将返回包含概要文件图片链接的Json数据。 使用access_令牌对上述请求的响应示例

{
  "id": "123",
  "name": "Admin User",
  "given_name": "Admin",
  "family_name": "User",
  "link": "https://plus.google.com/XYZ",
  "picture": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/XYX/4252rscbv5M/photo.jpg",
  "locale": "en"
}
如何在Java中获取访问令牌

我的代码粘贴在下面:

package com.example.myapplication.backend;

import com.google.api.server.spi.config.Api;
import com.google.api.server.spi.config.ApiMethod;
import com.google.api.server.spi.config.ApiNamespace;
import com.google.appengine.api.oauth.OAuthRequestException;
import com.google.appengine.api.users.User;

import java.io.IOException;

/** An endpoint class we are exposing */
@Api(
  name = "myApi",
  version = "v1",

        scopes = { Constants.EMAIL_SCOPE2 },
        clientIds = { Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID,
                Constants.API_EXPLORER_CLIENT_ID},
        audiences = {Constants.ANDROID_AUDIENCE},


  namespace = @ApiNamespace(
    ownerDomain = "backend.myapplication.Ajay.example.com",
    ownerName = "backend.myapplication.Ajay.example.com",
    packagePath=""
  )
)
public class MyEndpoint {

    /** A simple endpoint method that takes a name and says Hi back */
    @ApiMethod(name = "sayHi")
    public MyBean sayHi( User user) throws OAuthRequestException, IOException
     {
        MyBean response = new MyBean();
         response.setData(user.getEmail() + "  nick name->" + user.getNickname() + "user id " + user.getUserId() + "-->" +
                 user.toString() + "getAuthDomain--->" + user.getAuthDomain().toString()+" token");
        return response;
    }


}

不可以,appengine中的用户对象是获取当前已验证用户的一种方便快捷的方法,这在appengine中是原则性的


如果您想获得访问令牌,您必须获得用户,然后如果用户同意,您将获得访问令牌。

我们无法在服务器端执行此操作,除非我们有用户的刷新令牌。而是在客户端执行此操作