JQuery .ajax POST для API электронных таблиц? - PullRequest
0 голосов
/ 20 января 2012

Я пытаюсь добавить новую строку в таблицу Google с помощью JavaScript / JQuery. Я понятия не имею, как это сделать, но вот моя попытка:

        var myJSONObject = {"entry": [
         "gsx:name": name,
         "gsx:email": email,
         "gsx:phone": phone,
         "gsx:guests": guests
        ]}

        var json_uri = "https://spreadsheets.google.com/feeds/list/" + KEY + "/" + id + "/" + SECURE + "/values?alt=json"

        $.ajax({
         type: "POST",
         url: json_uri,
         //contentType: 'application/json',
         data: myJSONobject
         dataType: 'json',
         success: function(data){
            alert("row added!");
         },
         error: function(){
            alert("error");
         }
    });

но я получаю сообщение об ошибке: (

1 Ответ

1 голос
/ 21 апреля 2012

Я не уверен в использовании jQuery ajax api, но вы можете попробовать создать запись xml, как показано ниже, и настроить параметры, как показано.

Возможно, кто-то еще может показать, как это сделать с помощью jQuery api?

gdocs.constructSpreadAtomXml_ = function(name, email, phone, guests) {    
    var atom = ["<?xml version='1.0' encoding='UTF-8'?>",
              '<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">',
              '<gsx:name>',name,'</gsx:title>',
              '<gsx:email>',email,'</gsx:url>',
              '<gsx:phone>',phone,'</gsx:summary>',
              '<gsx:guests>',guests,'</gsx:tags>',
              '</entry>'].join('');
    return atom;
};

...

var params = {
    'method': 'POST',
    'headers': {
      'GData-Version': '3.0',
      'Content-Type': 'application/atom+xml'
    },

    'body': gdocs.constructSpreadAtomXml_(name, email, phone, guests)
};

  var worksheetId = 'od6'; //The first worksheet.

  var url = 'https://spreadsheets.google.com/feeds'+'/list/'+docId+'/'+worksheetId+'/private/full';

  //sends the params to the background page to get delivered to gDocs
  oauth.sendSignedRequest(url, handleSuccess, params);
...