私は Google アプリ プロジェクトに取り組んでおり、Java oauth ライブラリ (1.10.1-beta) に少し苦労しています。
私は密接に従った:http://code.google.com/p/google-oauth-java-client/wiki/OAuth2#Authorization_code_flow
問題は、userId または userEmail をどこから取得すればよいかわからないことです。userinfo API があることは知っていますが、実際に資格情報を作成しようとしているため、userinfo API AFIAK にアクセスできません。
私のアプリケーションは localhost でうまく動作します (test@example.com ユーザーが常にそこにいるため) が、Google エンジン環境 (NullPointerException user.getUserId()) にデプロイすると惨めに失敗します。
// we ask for token because we got authCode
GoogleTokenResponse gTokenResponse = userUtils.getFlow().newTokenRequest(authCode).setRedirectUri(userUtils.getRedirectUri()).execute();
//trying to search for user email / id / whatever
User user = UserServiceFactory.getUserService().getCurrentUser();
//user is null -> nullPointerException is thrown
userUtils.getFlow().createAndStoreCredential(gTokenResponse, user.getUserId());
私のユースケースの欠陥を指摘するか、ヒントを教えてください。SDKのサンプル、Stackoverflow、こちらでいろいろ検索しましたが実装が少ないです。
PS: メソッドAuthorizationCodeFlow.createAndStoreCredential (...) では、資格情報に永続ストレージを使用する場合にのみ userId が必須であり、はい、それを使用しているため、私の場合は userId を null にすることはできません。
ありがとう。