web-dev-qa-db-ja.com

Google APIからユーザー情報プロファイルを取得するにはどうすればよいですか?

Googleアカウントでのサインインを実装する必要があります。

いくつか提案したい。

Googleコンソールでプロジェクトを作成しました。スコープユーザーinfo.profileを追加

インターネットでコースの指示に従っていますが、それでもユーザー情報(メール、名前、年齢など)を取得できません。

ステップ:

{
    "azp": "155122683461-51hq2n932svo4ajbt98ic0q67m4tuj5o.apps.googleusercontent.com",
    "aud": "155122683461-51hq2n932svo4ajbt98ic0q67m4tuj5o.apps.googleusercontent.com",
    "sub": "108865940357700877124",
    "scope": "https://www.googleapis.com/auth/userinfo.profile",
    "exp": "1554094721",
    "expires_in": "3326",
    "access_type": "offline"
}

例を挙げてもらえますか?

ありがとう

3
Vũ Anh Dũng

people API

あなたが探している情報は people.get にあります

GET https://people.googleapis.com/v1/{resourceName=people/*}

ヒントスペースのないフィールドマスクを送信-person.emailAddresses,person.birthdaysフォーム person info を読み取るため、ユーザーはこの情報を入力する必要があります

ただし、必要な情報を取得するには、スコープを追加する必要があります

https://www.googleapis.com/auth/profile.emails.read
https://www.googleapis.com/auth/user.birthday.read

ここでテストできます Google Apis Explorer

Google People APIのnode.jsクイックスタートを見つけることができます here

userinfoエンドポイント

Userinfoエンドポイントも使用できますが、探している情報は返されません

emailスコープをリクエストして、以下の応答で電子メールを表示する必要があります。ユーザーは、電子メールを表示する権限を付与する必要があります。スコープのみ。

GET /oauth2/v2/userinfo HTTP/1.1
Host: www.googleapis.com
Content-length: 0
Authorization: Bearer ya29.GlveBiwp4-NTPLU9VN3rn1enty11KOdQHGcyfZd1xJ1Ee9eGS2Pw2nJ7KDUBQPa-uT-AoKDQdoVigU6bruVIB1a3fiBu1n

応答

{
  "picture": "https://lh5.googleusercontent.com/-a1CWlFnA5xE/AAAAAAAAAAI/AAAAAAAAl1I/UcwPajZOuN4/photo.jpg", 
  "name": "Linda Lawton", 
  "family_name": "Lawton", 
  "locale": "en", 
  "gender": "female", 
  "link": "https://plus.google.com/+LindaLawton", 
  "given_name": "Linda", 
  "id": "117200475532672775346"
}

スコープ

スコープの操作方法については、ノード tutorial を参照してください。コードのスコープを変更した場合は、ユーザーのアクセスを再度リクエストする必要があることに注意してください。

const SCOPES = ['profile', 'email'];
3
DaImTo