メールやニックネームなどのGoogleユーザー情報を取得できました。しかし、私はこれは、プロフィール画像へのリンクを含むJSONデータをバック返されます。この
https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=XXX
UserオブジェクトのGoogleアプリケーションエンジンのエンドポイントでアクセストークンを取得するにはどうすればよいですか?
を呼び出す必要があることにアクセスするにはスコープhttps://www.googleapis.com/auth/userinfo.profile
からユーザープロフィール画像を取得します。私はJavaでアクセストークンを取得するにはどうすればよいaccess_tokenは
{
"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"
}
と上記の要求のための サンプル応答?
私のコードを以下に貼り付けられます:
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;
}
}
ユーザーの更新トークンがない限り、サーバー側では実行できません。クライアント側でこれを行う代わりに –