Любой способ получить данные в формате JSON таблицы Google Doc SpreadSheet с помощью jquery без публикации документа? - PullRequest
9 голосов
/ 23 сентября 2011

Я пытаюсь получить данные из электронной таблицы Google Doc, используя javascript и jQuery, для выполнения математических операций с числами.

С помощью следующего кода, который я получил, для общедоступных электронных таблиц:

function getdata( key, wid, f )
{
    return $.getJSON(
        '//spreadsheets.google.com/feeds/cells/' +
         key + '/' + wid + '/public/basic?alt=json-in-script&callback=?',
            function( data ){
                    /* the content of this function is not important to the question */
                    var entryidRC = /.*\/R(\d*)C(\d*)/;
                    var retdata = {};
                    retdata.mat = {};
                    for( var l in data.feed.entry )
                    {
                            var entry = data.feed.entry[ l ];
                            var id = entry.id.$t;
                            var m = entryidRC.exec( id );
                            var R,C;
                            if( m != null )
                            {
                                    R = new Number( m[ 1 ] );
                                    C = new Number( m[ 2 ] );
                            }
                            var row = retdata.mat[ R ];                                                                                                                           
                            if( typeof( row ) == 'undefined' )                                                                                                                    
                                    retdata.mat[ R ] = {};                                                                                                                        
                            retdata.mat[ R ][ C ] = entry.content;                                                                                                                
                    }                                                                                                                                                             
                    if( typeof( f ) != 'undefined' )                                                                                                                              
                            f( retdata )                                                                                                                                          
                    else                                                                                                                                                          
                            console.log( retdata );                                                                                                                               
            }                                                                                                                                                                     
    );
}

При попытке использовать личные данные я получил данные в формате XML (используя URL: '//spreadsheets.google.com/feeds/cells/'+ key + '/' + wid + '/private/basic').Этот тест также проверяет наличие, брандмауэр, настройку разрешений и состояние входа в систему текущего пользователя.

Но при добавлении последней части: ?alt=json-in-script&callback=f для получения данных в формате JSON выдается Не найдено, ошибка 404 .(Также получается, если добавлено только alt=json).

Краткое описание ситуации:

       public     private
XML     yes         yes
JSON    yes       Question

Использование JSON против Google описано в http://code.google.com/intl/es/apis/gdata/docs/json.html

Использование таблицы API Google описано в http://code.google.com/intl/es/apis/spreadsheets/data/3.0/reference.html#WorksheetFeed

Любой способ получить данные JSON GDoc SpreadSheet с использованием javascript, не делая документ общедоступным?

Заранее спасибо

1 Ответ

6 голосов
/ 26 сентября 2011

" Примечание. Получение канала без аутентификации поддерживается только для опубликованных электронных таблиц. "

Позор, потому что это была бы очень полезная функция. На самом деле, мне приятно узнать, что это возможно, по крайней мере, из опубликованных документов.

...