如何在Google表格中自动从API获取XML下载(稍后用于Data Studio)

问题描述 投票:0回答:1

我的新闻通讯服务提供了一个API,可获取XML,CSV或JSON统计信息。不幸的是,API调用不会直接在浏览器中打开XML文件,而是将文件下载到我的计算机上。

因此,(我猜)Google表格中的IMPORTXML函数不起作用。

我曾尝试在Google表格中创建Google Apps脚本来下载文件,但是脚本说不允许通过URL提供凭据。因此,也许这也是IMPORTXML不起作用的问题?

只能通过HTTP Auth访问该API,并且我通过URL(USERNAME:PASSWORD @ domain)提交凭据,因此不必处理弹出窗口。

最终,我希望将XML数据获取到Google表格中,以便将数据导入到Google Data Studio中。

您对此有任何解决方案吗?

我的XML是:

<report>
    <trackinghistory>
        <item id="123">
            <id>123</id>
            <resource_id>abc</resource_id>
            <type>111</type>

        </item>
        <item id="456">
            <id>456</id>
            <resource_id>def</resource_id>
            <type>222</type>
        </item>
    </trackinghistory>
</report>

我当前的代码是:

function myFunction() {

var options = {};
options.headers = {"Authorization": "Basic " + Utilities.base64Encode("USERNAME" + ":" + "PASSWORD")};
var xml = UrlFetchApp.fetch("https://example.com/api.php", options).getContentText();
var document = XmlService.parse(xml);
var root = document.getRootElement();
var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');
Logger.log([xml]); // <--This gives me the whole XML
Logger.log([document]); // <--This gives me "[[Document:  No DOCTYPE declaration, Root is [Element: <report/>]]]"
Logger.log([root]); // <--This gives me "[[Element: <report/>]]"

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

//Loop for Appending the XML to Sheets
}
google-apps-script google-sheets google-data-studio
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.