1

我需要使用 jquery 获取谷歌联系人。我已经成功地完全实施了。但问题是我无法获取该联系人的姓名。谷歌只是向我提供该用户的电子邮件地址。用户未提供其他信息。所以我想念一些东西。

在这里,我附上完整的代码和响应。

这是完整的代码

<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

将 &v=3 添加到 URL 的末尾。这将填充名称字段。但是,由于响应中的标题字段为空,这意味着该特定联系人没有应用任何名称。

此外,不相关且无害,但看起来您在 URL 查询参数中指定了 alt=json 两次。

于 2016-08-06T17:46:00.657 回答
0

我们没有找到像名字和姓氏这样的任何字段。任何帮助,将不胜感激

获取联系人的全名有点棘手。使用oauth playground, Contactsv3,我是这样做的:

  1. 首先,您需要知道您的联系人的contactId。如何?

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

    此 URI 请求将返回与您的电子邮件关联的所有联系人。现在在 XML 中找到了 contactId <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 回答