Android アプリでは、接続が成功し、コールバックが呼び出されるまで、 Google API へのアクセスの例に従いました。GoogleApiClient
onConnected
ただし、Google の例はそこで止まり、自分の名前、性別、および場所を取得する方法がわかりません(以前に使用した JavaScript+PHP SDK for Google+ ではmeとしても知られています)。
Javaコードは次のとおりです(簡潔にするために再試行とローテーション処理は省略されていますが、うまくいくようです)なぜme
nullなのですか?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_PROFILE)
.build();
}
@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
}
@Override
public void onConnected(Bundle bundle) { // why is me null?
Person me = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
Person.Name name = me.getName();
String given = name.getGivenName();
String family = name.getFamilyName();
Log.d(TAG, "Given: " + given + ", Family: " + family);
}
ログインしているユーザーのデータを Google+ から取得する方法を教えてください
アップデート:
問題を解決するために私が試みたこと:
1).addScope(Plus.SCOPE_PLUS_LOGIN)
ビルダー呼び出しに追加しました。
2) AndroidManifest.xml にさらに 2 つのアクセス許可を追加しました。
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Google Developers Console / Credentialsに、実際のキーストアと .android\debug.keystore の両方のキーを配置しました。
上記の「クライアント ID」をどこで使用すればよいかわかりません。
Google+ と GCM の 2 つの API しか有効になっていません。
3) 最後に、私は電話しました
adb shell setprop log.tag.GooglePlusPlatform VERBOSE
次のエラーが表示されました。
E/Volley ( 3890): [594] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/plus/v1/people/me
D/GooglePlusPlatform( 3890): Unexpected response code (403) when requesting: getPerson
W/GooglePlusPlatform( 3890): {"errors":[{"domain":"usageLimits","reason":"accessNotConfigured","message":"Access Not Configured. The API (Google+ API) is not enabled for your project. Please use the Google Developers Console to update your configuration."}],"code":403}
実際のデバイス (HTC M9) を使用していますが、アプリはまだ公開されていません。