2

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

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

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

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

请给我一些想法如何解决这个问题或我可以将 Campaign Monitor JSON 放入 Google 电子表格的其他方式

4

2 回答 2

4

我在2014 年 3 月 19 日下午 5 点 18 分(无固定链接)的 Joey的主页上发现了一条有用的评论。

脚本正在访问的电子表格 API 未实现 URL 中的基本身份验证。您可以通过使用 Base64 编码的用户名和密码传递 fetchOptions 来解决此问题。

我对其进行了修改以删除虚拟变量并取得了一些成功。

将此添加到ImportJSON 脚本编辑器代码的最后:

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_);
}
于 2014-05-02T15:47:18.307 回答
0

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

正如他们的API 文档中所解释的,您可以在您拥有的服务器上设置他们为 API 提供的包装器之一,而不是使用您的 API 密钥查询他们的 URL 。然后您可以在那里进行身份验证(例如在 python 中)并向您自己的服务器发出请求。

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

希望这可以让你开始!

于 2013-03-31T13:44:36.623 回答