web-dev-qa-db-ja.com

Google+ API:プロファイルのcurrentLocationを取得します

現在、テストを作成していて、google +ユーザーの場所を取得しようとしています。私は自分自身でテストしていて、自分の立場を公に設定しました。

私は当初GoogleLatitudeを使用することを計画していましたが、Googleは数日でこのAPIを廃止するため、私の唯一の選択肢はGoogle + APIを使用することです。

パラメータ currentLocationは数か月前に追加されました

したがって、私はそれを取得しようとしています。しかし、それを行うことができませんでした。

PHP API、次にOauth2.0を使用したJS APIを使用して自分のサーバーでテストしましたが、このいまいましいパラメーターは返送されません。他のパラメーターを取得することはできますが、絶対にそれはできません。 1。

それから私はグーグル+エクスプローラーでテストしました、しかし ここで同じこと、何も出てきませんでした

誰かがすでに同様の問題に遭遇していますか?

私はそれがどこから来るのかいくつかの考えを持っています:

  1. Oauth2.0ではこの情報にアクセスできませんか(可能なデータスコープを試しました)
  2. この機能にはバグがありますか?
  3. 確認済みのユーザーに制限されていますか?
  4. それともそれは不可能ですか?

ありがとう!

45
littlebridge

位置データへのアクセスは、OAuthトークンが生成されたときに位置データへのアクセスを許可したユーザーに制限されます。

スコープパラメータ。 で位置データへのアクセスを具体的に要求する必要があります

1
user3175273

私が思うに、r.placesLivedは彼の場所だけを提供しますが、ユーザーの場所や正確なマシンの場所を提供します。住所が必要なことを思い出してください。ただし、ユーザーの正確な場所を確認するために、別のトークンを探す必要があります。そこに入るには、場所だけでなく、より多くのトラッカーが必要になる場合があります。

0
bipartite

これは古い質問ですが、それでも有効な質問です。フィールド「currentLocation」が有効な応答としてリストされている場合でも People object field 、フィールドのデータにアクセスする方法はありません。

G +リポジトリ で問題として報告されましたが、これまでのところ回答はありません。

それでもユーザーの現在地を取得しようとしている場合は、次のスニペットを試してください。これが最適なオプションかどうかはわかりませんが、機能します:):

注:「r」はclient.request()応答データ(API呼び出し)を保持します

r.placesLived.forEach(function(l) {
   if (l.primary) 
    console.log(l.value);
});

お役に立てれば。乾杯。

0
nicofx