无法使用 httr 包连接到 Qualtrics API

Cant connect to Qualtrics API using httr package

我正在尝试使用 Rstudio Cloud“httr”包连接到 Qualtrics API 以下载邮件列表。在查看 API 文档后,我无法下载数据,在 运行 代码后出现以下错误:

"{"meta":{"httpStatus":"400 - 错误请求","error":{"errorMessage":"预期授权 headers,但 none 提供。","errorCode":"ATP_2"},"requestId":"8fz33cca-f9ii-4bca-9288-5tc69acaea13"}}"

这对我没有任何意义,因为我使用的是从 parent 令牌继承的身份验证。这是代码:

    install.packages("httr")

    library(httr)

    directoryId<-"POOL_XXXXX"
    mailingListId <- "CG_XXXXXX"
    apiToken<-"XXXX"


    url<- paste("https://iad1.qualtrics.com/API/v3/directories/",directoryId,
             "/mailinglists/",mailingListId,"/optedOutContacts", sep = "")

   response <- VERB("GET",url, add_headers('X_API-TOKEN' = apiToken), 
   content_type("application/octet-stream"))

   content(response, "text") 

任何帮助将不胜感激。

提前致谢。

您对 httr::VERB 的调用将 API 标记和内容类型分解为函数的两个参数,但它们应该在一个向量中一起传递给单个“配置”参数。此外,content_type 不是函数,它只是 header 向量中元素的名称。这应该有效:

response <- VERB("GET", url, add_headers(c(
                               'X_API-TOKEN' = apiToken, 
                               'content_type' = "application/octet-stream")))

请注意,Qualtrics 将以包含“元”元素和“结果”元素的列表的形式返回邮件列表,这两者本身都是列表。如果列表很长,则只返回列表中的前 100 个联系人;将有一个元素 response$result$nextpage 将提供访问下 100 个结果所需的 URL。 qualtRics::fetch_mailinglist() function 不适用于 XM Directory 联系人列表(这可能是您在使用它时遇到 500 错误的原因),但用于解压缩列表并循环遍历每个“下一页”元素的代码可能会有所帮助。