2

現在、ユーザーの連絡先情報をすべて取得し、一意のユーザー ID を取得しようとしています。

私たちのアプリはユーザーの Google 連絡先を利用する必要があり、ユーザーは Google を使用してサインインします。したがって、一意の各ユーザーを識別する何らかの方法が必要です (ほとんどの場合、Google が提供する一意のユーザー ID)。

これは、Google連絡先APIを使用してのみ可能ですか.

アクセス トークンを取得するために行う最初の呼び出しは次のとおりです。

" https://accounts.google.com/o/oauth2/auth?client_id=51672309258-94cnvnrkrverd72neakom9d3siscda5o.apps.googleusercontent.com&redirect_uri=http://localhost/lunch/oauth.php&scope=https://www.google.com /m8/feeds/&response_type=コード"

ただし、この呼び出しから返されたアクセス トークンにユーザー ID の情報が含まれているとは思えません。また、Google+ API からユーザー ID を取得する権限も付与されていません。

とにかく、Google コンタクト API から一意のユーザー ID を取得できる方法はありますか? ユーザーの連絡先のユーザー ID を取得する例がありますが、実際のユーザー ID (取得している連絡先のユーザー) を取得する必要がありますか?

これには別のスコープが必要ですか、それとも連絡先 API を使用して実現できますか?

4

2 に答える 2

0

注: 特殊な userEmail 値 default を使用して、認証済みユーザーを参照できます。

ドキュメンテーションドキュメンテーションから。キーワードdefaultを userEmail として試すことができます。

于 2015-07-31T19:28:37.120 に答える
0

ユーザーはメールアドレスで識別できますが、これは私の知る限り一意です。Google 連絡先 API にリクエストを発行すると、xml に Id と呼ばれるフィールドが取得されます。これは、ユーザーの電子メール アドレスです。

たとえば、すべての連絡先を要求すると、次のような xml を取得できます。 Id フィールドは必要なものであり、使用しているプログラミング言語 lib などに応じて、既存のアクセス許可で取得できます。たとえば、C# と gdata では、次のようにします (googleCredentials がオブジェクトになるはずです)。

        var cr = new ContactsRequest(settings);
        var feed = cr.GetGroups();
        googleCredentials.Email = feed.AtomFeed.Id.Uri.Content;
于 2014-07-25T11:44:03.860 に答える