【问题标题】:How to call API in R with a token如何使用令牌在 R 中调用 API
【发布时间】:2020-02-17 20:54:41
【问题描述】:

我正在试验 R,我想知道如何使用库 httr 或 rcurl 从 API 获取一些数据..

例如,在终端中使用 curl 我可以做到这一点,它会得到我想要的数据:

curl -X GET "https://some.webpage.com/api/v1/accounts/self/profile" -H "accept: application/json" -H "token-auth: 72124asfin393483feifefi92835w345"

注意:令牌密钥是随机字符集

不幸的是,当我尝试在 R 中重现这个失败时,我尝试使用类似的东西:

> library(httr)
> c <- GET("https://some.webpage.com/api/v1/accounts/self/profile?token- auth=72124asfin393483feifefi92835w345"

或者这个:

> url = "https://some.webpage.com/api/v1/accounts/self/profile"
> key = "{72124asfin393483feifefi92835w345}"
> a <- GET(url, add_headers(Authorization = paste("Bearer", key, sep = " ")))

不幸的是,当我在 Rstudio 中尝试此操作时,我总是收到此错误:

[1] "'token-auth' has to be provided for authentication."

有关此特定 API 调用的更多信息:

This is the documentation

所以我想我显然在 url 组合上做错了,我如何让它与 R 一起使用?我很困惑,我在 R 中找到了一些关于 API 的文档,但没有解释如何使用令牌。谢谢

【问题讨论】:

  • 并非所有 Web API 都相同。您需要阅读您尝试访问的特定 API 的文档。无论您使用的 API 不使用 Authorization 标头,而是希望令牌以其他方式传递,机会都很大。为了获得帮助,您需要提供某种可重现的示例进行测试。或者至少确定具体的网站而不是“webpage.com”
  • 然后试试a &lt;- GET(url, add_headers("token-auth" = key))。并确保您的密钥字符串中没有大括号。
  • (1) 将变量命名为 c 是不好的做法,这可能是所有 R 中最常用的函数。(即使 R 通常足够聪明,可以使用 real c 大部分时间。)(2)你在...?token- auth=7... 中有空格是错字吗? (3) 在令牌的第一次使用中,您只有字母/数字,但在第二次使用中,它被大括号包围。这很重要吗? (4) 最后,当它说'token-auth' has to be provided... 时,您提供的是Bearer 而不是token-auth。是这样吗?
  • @MrFicl 谢谢,这行得通 :) 我实际上尝试过,但我有一些错字,因此它不起作用,所以我发布了包含 Beared 而不是 token-authm 我的原始尝试将结果转换为 data.frame ,这正是我所需要的,所以再次感谢 :)
  • @r2evans 你是绝对正确的,(1)我明白,我会更好地命名我的变量,我正在学习,所以我没有考虑这个,(2)是的,这是一个错字, (3)我现在不确定,我尝试遵循文档并且令牌在那里被大括号包围,(4)是的,我明白了..我实际上在这一点上混合了两个文档,因此出现了错误。幸运的是,感谢你们,它现在可以工作了,我有更多信息!谢谢你,祝你有美好的一天!

标签: r access-token httr


【解决方案1】:

MrFlick 说的是正确的解决方案:

然后尝试

【讨论】:

    猜你喜欢
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2013-07-22
    • 2012-09-26
    • 2018-01-18
    相关资源
    最近更新 更多