Infusionsoft遗产XML-RPC API访问令牌经常到期



我正在使用Infusionsoft的fiegacy XML-RPC API,只需更新电子邮件和退出原因等联系人的一些联系方式。

我正在使用Google Apps脚本来实现这一目标,因为可以在此处提供具有联系ID的数据。但是,这是一个较大的项目的一部分,在该项目中可以从其他来源检索这些联系。

我经常看到我收到响应401(未授权(消息,以响应所提出的请求。它需要再生访问令牌才能通过这些请求。

有什么办法可以为此拥有永无止境的令牌或一些最高时间限制吗?由于客户需要经常再生代币才能更新数据。

脚本需要每天为列表中可用的所有新联系人运行,并且不涉及其他用户。

目前,我正在共享示例代码检索联系人详细信息,并且在同一天生成新令牌时效果很好。

function infusionTry()
{
  var KEY = APIKEY;
  var INF_TOKEN = ACCESS_TOKEN;
  var url = "https://api.infusionsoft.com/crm/xmlrpc/v1?access_token=" + INF_TOKEN;
  var payload = HtmlService.createTemplateFromFile("ReqData").getRawContent();
  payload = payload.replace("{privateKey}",KEY);
  payload = payload.replace("{contactIDNumber}",666486);
  var params = {
    method: "post",
    contentType : "application/xml",
    payload : payload,    
    muteHttpExceptions: true
  };
  var resp = UrlFetchApp.fetch(url, params);
  Logger.log(resp.getResponseCode());
  Logger.log(resp.getContentText());
}

谢谢。

处理旧版身份验证时,有不同的请求URL可以连接到API。

您引用的URL:

var url = "https://api.infusionsoft.com/crm/xmlrpc/v1?access_token=" + INF_TOKEN;

用于通过OAuth访问API。

与infusionsoft API密钥一起使用旧式API时,您应该拨打以下URL:

var url = "https://APPNAME.infusionsoft.com:443/api/xmlrpc";

where appName是您帐户的infusionsoft应用程序名称(子域(。

infusionsoft API密钥不会过期(但是Infusionsoft内部的用户可能会更改它(。

关于OAuth流,这里有更多信息。

访问令牌每24小时到期。

该过程将为您提供两个令牌。

刷新令牌活了90天,用于生成访问令牌。

infusionsoft刚刚宣布,刷新令牌将每90天到期,这意味着如果您想跳过手动授权来重置令牌。

,您必须更频繁地刷新脚本。

访问令牌生活24小时,用于拨打API。

所以总体过程是:

  1. 用户必须授予初始许可。(用户实际上将登录并确认许可。(
  2. 您的脚本应安全地存储"长期"(也许在数据库中(的刷新令牌,并存储/缓存访问令牌"短期"/即时(也许在会话中(使用。
  3. 在访问令牌到期之前,您的脚本将需要使用刷新令牌调用InfuSionsoft,而InfuSionSoft将使用新的刷新令牌和新的访问令牌进行响应。拨打此通话后,旧的刷新令牌和访问令牌都变得无效,无法再次使用。
  4. 从步骤2重复。

最新更新