だから私は自分のアプリにグーグルプラスログインを実装しました...私の実装はここで与えられた例にかなり厳密に従っています。私と彼の最大の違いは、必要なスコープのセットが大きいことです。plusclient をビルドするときに、次のスコープを指定します。
"https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.email"
後で onConnected メソッドで、実際の肉とジャガイモの作業を行うサーバーに渡すために、セッションから accesstoken を取得しようとします。
GoogleAuthUtil.getToken(SplashActivity.this, mPlusClient.getAccountName(), "oauth2: https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.email")
これにより、アクセストークンが生成されます。イッピー!右?いいえ。このトークンを使用しようとすると、アプリに関連付けられていないようです。googles tokeninfo エンドポイントを介してトークンを実行すると、次の行に沿って何かが得られます
{
"issued_to": "608941808256-43vtfndets79kf5hac8ieujto8837660.apps.googleusercontent.com",
"audience": "608941808256-43vtfndets79kf5hac8ieujto8837660.apps.googleusercontent.com",
"user_id": "107245641469745809180",
"scope": "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.profile https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.email",
"expires_in": 3577,
"email": "redacted@email.com",
"verified_email": true,
"access_type": "online"
}
その issue_to 値は、クライアント ID のいずれとも一致しません。このブログ投稿の最後の部分によると、Google はこのトークン リクエストを私たちのプロジェクトと一致させることができません。ただし、私たちの API コンソールには、実際に Android の SHA フィンガープリントがあり、パッケージ名とセミコロンで区切られています。スペルミスはありません。それが伝播の問題であるかどうかを確認するために何時間も待ちました。また、SHA フィンガープリントなどを追加して、デバッグ キーストアのクライアント ID を作成しました。署名済みの apk を Eclipse からエクスポートするか、直接実行するかに関係なく、同じ問題が発生します。
これは私を狂わせています。私はこれでどこを向くべきかわかりません。
例として、に電話をかけるとき
googleapis.com/plus/v1/people/me/people/visible?access_token=TOKEN_HERE&maxResults=100&pageToken=&alt=json&orderBy=best
私は得る
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured"
}
],
"code": 403,
"message": "Access Not Configured"
}
}
なんらかの理由で Google がそのトークンを私のプロジェクトに関連付けなかったからです。