web-dev-qa-db-ja.com

Google GAIA IDからユーザー情報を検索するにはどうすればよいですか?

私は、Googleのデータエクスポートサービス用のHangouts.jsonパーサーに取り組んでいます。このパーサーは、jsonファイルからすべての会話、添付ファイル、その他の情報を取得し、データベースにすべてを入力します。私はすべてを終えましたが、jsonファイルがGAIA IDを送信した人に提供する唯一の情報は、Googleがサービス間で使用する一意のIDです。問題は、ユーザーが識別した名前やメールアドレスなど、ユーザーに関するその他の情報を検索する方法がわからないことです。

GAIA IDを取得して次のようなURLに入力できるため、ほとんどの情報が公開されていることを私は知っています。https://plus.google.com/u/0/#####################/aboutここで、#はGAIAIDです。このページでは、スクリーン名を公開します。電子メールアドレスが不明な場合は、次を使用して同じことを推測できます。reply-#####################@profiles.google.comこれを使用して連絡することもできます。

理想的には、少なくともその公開Google+ページを解析せずにユーザーの画面名を検索できるようにしたいのですが、本当のメールも素晴らしいでしょう。したがって、理想的には、APIまたはその他のリソースでGAIAIDから画面名や電子メール情報を検索する必要があります。

12
rfoo

重要な更新

2019年3月:この回答はまだ投票を集めていますが、GoogleはGoogle PlusAPIを撤回/撤回しました。

これは適用されなくなるため、代替ソリューションが必要になります。

元の返信

Google Plus APIを使用します: https://developers.google.com/+/api/

ハングアウトで特にテストしたことはありませんが(Hongouts APIがあることを知りませんでした!)、他のAPIからIDを指定して詳細を返します。

ここでテストできます: https://developers.google.com/apis-Explorer/#p/plus/v1/plus.people.get 何が得られるかを確認します。

15
Robbie

Gaia IDは、People APImetadatapersonFieldsをリクエストします。

Google API Explorer で試してみてください(サンプルリンクは以下にあります)。


連絡先(彼/彼女がGoogleユーザーである場合)の場合、people.connections/listリソースを使用します:

People API --people.connections/list --personFields = names、metadata (必須ではありませんが、わかりやすくするためにnamesの値をpersonFieldsに含めました。ガイアIDを取得するには)

サンプル出力(1XXXXXXXXXXXXXXXXXXXXはガイアIDです):

{
  "connections": [
    {
      "resourceName": "people/c42",
      "etag": "...",
      "metadata": {
        "sources": [
          {
            "type": "CONTACT",
            ...
          },
          {
            "type": "PROFILE",
            "id": "1XXXXXXXXXXXXXXXXXXXX",
            ...
            "profileMetadata": {
              "objectType": "PERSON",
              "userTypes": [
                "GOOGLE_USER"
              ]
            }
          }
          ....
        ],
        "objectType": "PERSON"
      }
      "names": [
        {
          ...
          "displayName": "John Doe",
          ...
        }
      ]
    },
    ...
}

people/getリソースを使用する自分自身または任意のユーザー

People API --people/get --personFields = metadata

resourceNameフィールド:

  • people/meを使用して情報を取得します。
  • 以前にpeople.connections.listリクエストで取得したresourceName値を使用して、別のユーザー情報を取得します

サンプル出力(1XXXXXXXXXXXXXXXXXXXXはガイアIDです):

{
  "resourceName": "people/...",
  "etag": "....",
  "metadata": {
    "sources": [
      {
        "type": "PROFILE",
        "id": "1XXXXXXXXXXXXXXXXXXXX",
        "etag": "...",
        "profileMetadata": {
          "objectType": "PERSON",
          "userTypes": [
            "GOOGLE_USER"
          ]
        }
        ...
      },
     ...
    ],
    "objectType": "PERSON"
  }
}
2
Olivier