包httr
在R中提供CURL包装(参见package documentation)。
我是HTTP和API的新手。我的麻烦是让oauth2.0认证工作。我尝试了各种语法规范,并获得错误或状态401.
使用GET()
使用oauth2.0令牌并发出httr
请求的正确方法是什么?
# Set UP
url = "https://canvas.{institution}.edu/api/v1/courses"
key = "{secret_key}"
# 1
GET(url, sign_oauth2.0(key))
# Error: Deprecated: supply token object to config directly
# 2
GET(url, config(sign_oauth2.0 = key))
# unknown option: sign_oauth2.0
# 3
GET(url, config = list(sign_oauth2.0 = key))
# Status 401
答案 0 :(得分:9)
在此特定用例中使用Canvas API - 请求的标题中需要其他信息。
使用GET
R包中的httr
函数,使用add_header
参数提供包含oauth2键的参数。
如果您不想将密钥硬编码到请求中,请使用选项1(推荐)。或者,使用选项2并将密钥作为字符串插入。但在这两种情况下,“持票人”都先于钥匙。
# Set Up
url = "https://canvas.{institution}.edu/api/v1/courses"
key = "{secret_key}"
# OPTION 1
GET(url, add_headers(Authorization = paste("Bearer", key, sep = " ")))
# OPTION 2
courses.request = GET(url, add_headers(Authorization = "Bearer {secretkey}"))
其他人可以解释为什么OP的示例没有工作的其他原因吗?