客户端检索 Google 联系人图片

2024-04-29

我正在使用 Google JavaScript API 在网络应用程序中获取 Google 联系人,并且我想检索他们的照片。

我正在做这样的事情(大大简化):

var token; // let's admit this is available already

function getPhotoUrl(entry, cb) {
  var link = entry.link.filter(function(link) {
    return link.type.indexOf("image") === 0;
  }).shift();
  if (!link)
    return cb(null);
  var request = new XMLHttpRequest();
  request.open("GET", link.href + "?v=3.0&access_token=" + token, true);
  request.responseType = "blob";
  request.onload = cb;
  request.send();
}

function onContactsLoad(responseText) {
  var data = JSON.parse(responseText);
  (data.feed.entry || []).forEach(function(entry) {
    getPhotoUrl(e, function(a, b, c) {
      console.log("pic", a, b, c);
    });
  });
}

但我在 Chrome 和 Firefox 中都收到此错误:

跨源请求被阻止:同源策略不允许读取远程资源

当查看来自提要/照片端点的响应标头时,我可以看到Access-Control-Allow-Origin: *未发送,因此出现 CORS 错误。

注意Access-Control-Allow-Origin: *到达时发送feeds/contacts端点,因此允许跨域请求。

这是一个错误,还是我错过了他们文档中的某些内容?


假设您只需要“个人资料图片”,请尝试通过将完整的 URL 设置为src的元素<img>标签(带有?access_token=<youknowit>在最后)。

例如。使用 Angular.js

<img ng-src="{{contact.link[1].href + tokenForImages}}" alt="photo" />

总体而言,就 CORS 而言,从 JS 访问 API 似乎有不少地方无法按预期工作。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

客户端检索 Google 联系人图片 的相关文章

随机推荐