1

jqueryを使用してGoogleの連絡先を取得する必要があります。そして、私は完全に実装することに成功しました。しかし、問題は、その連絡先の名前を取得できないことです。Google は、そのユーザーのメール アドレスを提供しているだけです。ユーザーが他の情報を提供することはありません。だから私は何かが恋しいです。

ここで、応答付きの完全なコードを添付します。

ここに完全なコードがあります

<script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
<script type="text/javascript">
    var clientId = "google_clientId";
    var apiKey = "google_api_key";
    var scopes = 'https://www.google.com/m8/feeds/';
    $(document).on("click", ".googleContactsButton", function (e) {
        gapi.client.setApiKey(apiKey);
        window.setTimeout(authorize);
    });
    function authorize() {
        gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthorization);
    }

    function handleAuthorization(authorizationResult) {
        if (authorizationResult && !authorizationResult.error) {

            $.get("https://www.google.com/m8/feeds/contacts/default/full?alt=json&access_token=" + authorizationResult.access_token + "&alt=json",
                    function (response) {
                        //process the response here
                        console.log(JSON.stringify(response));

                    });
        }
    }
</script>

これがAPIの応答です

[
  {
    "id": {
      "$t": "http://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/base/87427988f9359bf"
    },
    "updated": {
      "$t": "2016-07-21T08:09:55.053Z"
    },
    "category": [
      {
        "scheme": "http://schemas.google.com/g/2005#kind",
        "term": "http://schemas.google.com/contact/2008#contact"
      }
    ],
    "title": {
      "type": "text",
      "$t": ""
    },
    "link": [
      {
        "rel": "http://schemas.google.com/contacts/2008/rel#edit-photo",
        "type": "image/*",
        "href": "https://www.google.com/m8/feeds/photos/media/ishan%40inheritx.com/87427988f9359bf/1B2M2Y8AsgTpgAmY7PhCfg"
      },
      {
        "rel": "self",
        "type": "application/atom+xml",
        "href": "https://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/full/87427988f9359bf"
      },
      {
        "rel": "edit",
        "type": "application/atom+xml",
        "href": "https://www.google.com/m8/feeds/contacts/ishan%40inheritx.com/full/87427988f9359bf/1469088595053001"
      }
    ],
    "gd$email": [
      {
        "rel": "http://schemas.google.com/g/2005#other",
        "address": "prakash@inheritx.com"
      }
    ]
  }
]

それに応じて、名と姓のようなフィールドは見つかりませんでした。助けていただければ幸いです。

しかし、名前を手動で追加すると、タイトル キーに表示されます。しかし、その連絡先名が google+ から同期されている場合、空白が表示されます。

ありがとう

4

2 に答える 2

1

URL の末尾に &v=3 を追加します。これにより、名前フィールドが入力されます。ただし、応答ではタイトル フィールドが空であるため、この特定の連絡先には名前が適用されていないことを意味します。

また、無関係で無害ですが、URL クエリ パラメータで alt=json を 2 回指定しているようです。

于 2016-08-06T17:46:00.657 に答える
0

名と姓のようなフィールドは見つかりませんでした。任意の助けをいただければ幸いです

連絡先のフルネームを取得するのは少し難しいです。oauth プレイグラウンド、Contactsv3を使用して、これを行った方法は次のとおりです。

  1. まず、連絡先のcontactIdを知る必要があります。どのように?

    GET https://www.google.com/m8/feeds/contacts/{your_userEmail}/full

    この URI リクエストは、メールに関連付けられたすべての連絡先を返します。これで contactId が XML で見つかりました<id> tag<id>http://www.google.com/m8/feeds/contacts/../base/123456789abcdefg</id>

    この場合、123456789abcdefgは特定の人のcontactIdです。フルネームは<title>タグにあります。
    <title type="text">John Carmack</title>

  2. ステップ 1 とは異なり、個人の連絡先の詳細を個別に取得するには、次を使用します。 GET https://www.google.com/m8/feeds/contacts/{your_userEmail}/full/123456789abcdefg

この応答を解析し、それに応じて使用するのはあなた次第です。JSON形式があるかどうかは確認していませんが、参考になれば幸いです。

于 2016-08-08T02:32:25.997 に答える