【问题标题】:Import CSV from API output to google将 API 输出中的 CSV 导入谷歌
【发布时间】:2019-09-29 09:47:51
【问题描述】:

我完全不知道自己在做什么,但我正在尝试将 CSV 数据从 API 输出导入到谷歌表格中。

我要导入的数据是预订数据,已经生成为 csv 文件,我只需要第一次导入所有数据然后更新它(无需重新导入去年的所有数据)

API URL 是:

https://www.beds24.com/api/csv/getbookingscsv

但是,我需要输入我的用户名和密码,如果需要,还需要输入日期范围。

所以在我的脑海里应该是: 年度预订导入的一个脚本

username    XXXXX
password    •••••
datefrom    
dateto  

使用日期范围导入当天预订的脚本

username    XXXXX
password    •••••
datefrom    2019-09-29
dateto      2019-09-29

我第一次使用 googlescript 时发现我可能需要这样的东西:

function importCSV() {
   var var bookings = beds24api.beds24GetBookings(prop_key, data_option);
   var res = UrlFetchApp.fetch("https://www.beds24.com/api/csv/getbookingscsv");  
   var content = res.getContentText();
   var authentication = {
       'authentication' : {
         'username' : XXXXX,
         'password' : •••••
       };
   };
}
function beds24GetBookingsCSV(username, password, data_option){
    return beds24JsonApi('https://www.beds24.com/api/csv/getbookingscsv',username, password, data_option);
    };
    return {
        beds24GetBookings: beds24GetBookingsCSV,
    };
}

你们中的很多人都会从这段代码中流血,但如果我能得到一些帮助来实现这一点,那就太棒了!

【问题讨论】:

  • 你的第二个函数语法不正确。

标签: api csv google-apps-script import google-sheets-api


【解决方案1】:

我没有使用 bed24 的经验,也不想这样做。但是,如果您查看here,您会发现UrlFetchApp.fetch(url, options); 的示例。我相信您需要将身份验证数据包含到选项对象中,或者将它们作为 url 的查询字符串部分的元素包含在内。看看在 Beds 24 中有一个 Google Apps 脚本示例或可能是一个 Javascript 示例。

【讨论】:

  • 非常感谢!会看的!
  • 查看了bed24 API faq,但到目前为止我找不到任何可以帮助我的代码。
【解决方案2】:

  String url = "https://www.beds24.com/api/csv/getbookingscsv";
        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

        con.setRequestMethod("POST");

        String params = "username=XXX&password=YYY";

        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(params);
        wr.flush();

        BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream()));
       
        StringBuilder response = new StringBuilder();

        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        System.out.println(response.toString());
# Function to get data from Beds24 API
getBeds24Data <-function(username = property_mgmt$username,
                         password = property_mgmt$password,
                         datefrom = "2019-01-01",
                         dateto = "2019-12-30"){
  url <- "https://www.beds24.com/api/csv/getbookingscsv"

  response <- httr::POST(url=url, body = list("username" = username,
                                              "password"=password,
                                              datefrom = datefrom,
                                              dateto = dateto))
  beds24Data <- httr::content(response,type='text/csv',col_names=T,col_types=NULL)
  return(beds24Data)
} 

【讨论】:

  • 没试过。我需要一个谷歌脚本,它似乎是 java?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-22
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多