在Google电子表格中导入带有身份验证的JSON(Campaign Monitor)

时间:2013-01-28 03:40:01

标签: json api google-sheets campaign-monitor

我正在使用Google电子表格从Campaign Monitor获取订阅者数据,但是我遇到了一个问题

使用ImportJSON脚本 - http://blog.fastfedora.com/projects/import-json

我把网址:http:// [APIKEY]:[PASSWORD] @ api.createsend.com / api / v3 / subscribers / [LISTID] .json?email = [EMAILADDRESS]

然而,它在单元格中给出了“错误请求”错误。我猜这是因为如果我把这个网址放在浏览器中,我会收到一个确认弹出框,上面写着“你即将以用户名:[USERNAME]”登录网站“api.createsend.com”

我可以获得一些想法,了解如何绕过这个或其他方式将Campaign Monitor JSON放入Google电子表格中

2 个答案:

答案 0 :(得分:4)

我从Joey @找到了一条有用的评论on the homepage 2014年3月19日下午5:18(没有永久链接)。

URL中的基本身份验证不是由脚本访问的Spreadsheet API实现的。您可以通过使用Base64编码的用户名和密码传递fetchOptions来解决这个问题。

我修改它以删除虚拟变量并取得了一些成功。

将此添加到ImportJSON Script Editor code的最后:

function ImportJSONBasicAuthentication(url, query, parseOptions, username, password) {

  var fetchOptions = {
    "headers" : {
       "Authorization" : 'Basic ' + Utilities.base64Encode(username + ':' + password)
    },
    muteHttpExceptions: true
  };

   return ImportJSONAdvanced(url, fetchOptions, query, parseOptions, includeXPath_, defaultTransform_);
}

答案 1 :(得分:0)

我看到您的身份验证屏幕出现问题。因此,我会尝试不同的方法:

正如他们API documentation中所述,您可以在自己拥有的服务器上设置其可用于其API的wrappers,而不是使用API​​密钥查询其网址。然后你可以在那里进行身份验证(example in python)并向你自己的服务器发出请求。

我喜欢将Flask用于这类事情,因为它非常轻巧且易于上手。

希望这可以帮助你开始!