首页 > 解决方案 > 我想用 ruby​​ 语言对 GoogleSpreadsheet 工作表进行排序

问题描述

我想用 ruby​​ 语言对 GoogleSpreadsheet 工作表进行排序。并且 GoogleAPI 响应是“成功”。但不是对工作表进行排序。你知道这是什么原因吗?

使用宝石。

gem 'google-api-client'
gem 'google_drive', '~> 3.0'
google_session=GoogleDrive::Session.from_config("config.json")
spreadsheet=google_session.spreadsheet_by_url("spreadsheet URL")
spreadsheet.batch_update(
  [
    {update_sheet_properties: 
      {fields:"index",
        properties:[
         {
          sheet_id: xxxxx,#etc . spreadsheet.worksheets.first.sheet_id, 
          index: 2 #
         }            
        ]
      }
   }])

是回应。

Sending HTTP post https://sheets.googleapis.com/v4/spreadsheets/XXXXX[SheetId]XXXXX:batchUpdate?
200
#<HTTP::Message:0x00007fe073016228 @http_header=#<HTTP::Message::Headers:0x00007fe073016200 @http_version="1.1", @body_size=0, @chunked=false, @request_method="POST", @request_uri=#<Addressable::URI:0x47e14 URI:https://sheets.googleapis.com/v4/spreadsheets/XXXXX[SheetId]XXXXX:batchUpdate?>, @request_query=nil, @request_absolute_uri=nil, @status_code=200, @reason_phrase="OK", @body_type=nil, @body_charset=nil, @body_date=nil, @body_encoding=#<Encoding:UTF-8>, @is_request=false, @header_item=[["Content-Type", "application/json; charset=UTF-8"], ["Vary", "Origin"], ["Vary", "X-Origin"], ["Vary", "Referer"], ["Content-Encoding", "gzip"], ["Date", "Tue, 11 Aug 2020 10:24:01 GMT"], ["Server", "ESF"], ["Cache-Control", "private"], ["X-XSS-Protection", "0"], ["X-Frame-Options", "SAMEORIGIN"], ["Alt-Svc", "h3-29=\":443\"; ma=2592000,h3-27=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000,h3-Q050=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\""], ["Transfer-Encoding", "chunked"]], @dumped=false>, @peer_cert=#<OpenSSL::X509::Certificate: subject=#<OpenSSL::X509::Name CN=upload.video.google.com,O=Google LLC,L=Mountain View,ST=California,C=US>, issuer=#<OpenSSL::X509::Name CN=GTS CA 1O1,O=Google Trust Services,C=US>, serial=#<OpenSSL::BN:0x00007fe06f7f5290>, not_before=2020-07-15 08:33:25 UTC, not_after=2020-10-07 08:33:25 UTC>, @http_body=#<HTTP::Message::Body:0x00007fe073016188 @body="{\n  \"spreadsheetId\": \"XXXXX[SheetId]XXXXX\",\n  \"replies\": [\n    {}\n  ]\n}\n", @size=0, @positions=nil, @chunk_size=nil>, @previous=nil>
Success - #<Google::Apis::SheetsV4::BatchUpdateSpreadsheetResponse:0x00007fe072196fe0
 @replies=[#<Google::Apis::SheetsV4::Response:0x00007fe072195c30>],
 @spreadsheet_id="XXXXX[SheetId]XXXXX">

但是GSS没有更新......

标签: rubygoogle-sheets-api

解决方案


我的参数说明是错误的。

properties: []=>properties: {}

spreadsheet.batch_update(
  [
    {update_sheet_properties: 
      {fields:"index",
        properties:
         {
          sheet_id: xxxxx,#etc . spreadsheet.worksheets.first.sheet_id, 
          index: 2 #
         }            
      }
   }])

推荐阅读