在javascript中使用Google Contact API添加联系人

时间:2014-01-15 17:32:20

标签: javascript api google-contacts

我在javascript中使用Google API。我设法通过以下代码获取了我的联系人列表:

$.ajax({
    url: 'https://www.google.com/m8/feeds/contacts/default/full?access_token=' + access_token + '&alt=json',
    method: 'GET',

    error: function(error) {
        alert('An error has occured during contact creation.');
    },

    success: function(data, status){
        console.log(data);
    }
});

我尝试通过将GET更改为POST并在请求正文中添加联系人数据来添加联系人。但是只要我添加数据属性,或者将GET更改为POST,服务器就会回答我真正讨厌的“No'Access-Control-Allow-Origin”错误。

有什么想法吗? 我正在关注此文档:https://developers.google.com/google-apps/contacts/v3/?csw=1#creating_contacts

非常感谢

1 个答案:

答案 0 :(得分:1)

可以通过浏览器执行此操作,但根本不是

基于this SO answer,我们了解到有一种名为gapi.client.request的方法可以用于此(而不是jQuery的$.ajax)。

因此,进行编辑我们可以这样做:

gapi.client.request({
    method : 'PUT', 
    path:'m8/feeds/contacts/default/full/<contactId>/<editRevisionFromGET>', 
    body : {"version":"1.0","encoding":"UTF-8","entry": ...}, 
    callback : function(data) { 
        console.log(data); 
    }
});

这里编辑的重要部分是:

  1. 从阅读
  2. 发回您之前获得的所有条目
  3. 使用关联类型为entry.link的{​​{1}}元素中URL末尾的当前ID(或者您将获得HTTP状态409 - 冲突)
  4. 旁注: 请注意,这些请求实际上已完成edit ... 从一些快速测试,你似乎可以做到吗?所有?仅请求该URL而不是google.com,然后CORS问题就会消失。