Google Plus Domain API Android を使用してユーザーのサークルを取得しようとしています。
プロジェクトで最初に次のライブラリをインポートしました。
google-api-client-1.18.0-rc.jar
google-api-client-android-1.18.0-rc.jar
google-oauth-client-1.18.0-rc.jar
google-http-client-1.18.0-rc.jar
google-http-client-android-1.18.0-rc.jar
gson-2.1.jar
jackson-core-asl-1.9.11.jar
jackson-core-2.1.3.jar
jsr305-1.3.9.jar
protobuf-java-2.4.1.jar
詳細については、リンクを参照してください。
次の手順を実行しました。
認証トークンを取得します。
String accountName = params[0]; String GPLUS_PROFILE = "https://www.googleapis.com/auth/userinfo.profile"; String GPLUS_LOGIN = "https://www.googleapis.com/auth/plus.login"; String GPLUS_CIRCLES = "https://www.googleapis.com/auth/plus.circles.read"; String GPLUS_ME = "https://www.googleapis.com/auth/plus.me"; String scopes = "oauth2:" + GPLUS_PROFILE + " " + GPLUS_LOGIN + " " + GPLUS_CIRCLES + " " + GPLUS_ME; String token = null; try { token = GoogleAuthUtil.getToken(LoginActivity.this, accountName, scopes); return token; } catch (IOException e) { Log.e(TAG, e.getMessage()); } catch (UserRecoverableAuthException e) { startActivityForResult(e.getIntent(), REQ_SIGN_IN_REQUIRED); return null; } catch (GoogleAuthException e) { Log.e(TAG, e.getMessage()); }
認証トークンを受け取ったので、ユーザーの詳細を取得するために PlusDomain クラス オブジェクトを作成しようとしました。
public void getPlusDomain(String response) { HttpTransport httpTransport = new NetHttpTransport(); JsonFactory jsonFactory = new JacksonFactory(); GoogleCredential googleCredential = new GoogleCredential() .setAccessToken(response); plusDomains = new PlusDomains.Builder(httpTransport, jsonFactory, googleCredential).setApplicationName("Google Mini") .build(); Person mePerson; try { mePerson = plusDomains.people().get("me").execute(); System.out.println("ID:\t" + mePerson.getId()); System.out.println("Display Name:\t" + mePerson.getDisplayName()); System.out.println("Image URL:\t" + mePerson.getImage().getUrl()); System.out.println("Profile URL:\t" + mePerson.getUrl()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
次の例外が発生します。
このリンクを使用して問題を解決しましたが、例外が発生しました
JsonFactory jsonFactory = new JacksonFactory();
Thread.currentThread().setContextClassLoader(
jsonFactory.getClass().getClassLoader());
しかし、その後私は得る
com.google.api.client.googleapis.json.GoogleJsonResponseException
この問題を解決する方法と、この例外が発生する理由