将 oauth2.0 令牌与 R 的 httr 包一起使用
Using oauth2.0 tokens with R's httr package
问题
包 httr
在 R 中提供了 CURL 包装器(参见 package documentation)。
我是 HTTP 和 API 的新手。我的麻烦是让 oauth2.0 身份验证工作。我尝试了各种语法并得到错误或状态 401。
使用 oauth2.0 令牌并使用 httr
发出 GET()
请求的正确方法是什么?
代码尝试
# 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
解决方案
在这个特定的用例中——使用 Canvas API——请求的 header 中需要额外的信息。
使用 httr
R 包中的 GET
函数,使用 add_header
参数提供包含您的 oauth2 密钥的参数。
如果您不想将密钥硬编码到请求中,请使用选项 1(推荐)。或者,使用选项 2 并将密钥作为字符串插入。但是在这两种情况下,“Bearer”都在密钥之前。
# 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 {secret_key}"))
#进一步说明
- Authorization Header
的解释
- "Bearer " 必须位于密钥之前的原因。
- OAuth Bible 对于理解请求的组成部分很有用
还有谁能解释 OP 的示例没有的其他原因吗?
问题
包 httr
在 R 中提供了 CURL 包装器(参见 package documentation)。
我是 HTTP 和 API 的新手。我的麻烦是让 oauth2.0 身份验证工作。我尝试了各种语法并得到错误或状态 401。
使用 oauth2.0 令牌并使用 httr
发出 GET()
请求的正确方法是什么?
代码尝试
# 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
解决方案
在这个特定的用例中——使用 Canvas API——请求的 header 中需要额外的信息。
使用 httr
R 包中的 GET
函数,使用 add_header
参数提供包含您的 oauth2 密钥的参数。
如果您不想将密钥硬编码到请求中,请使用选项 1(推荐)。或者,使用选项 2 并将密钥作为字符串插入。但是在这两种情况下,“Bearer”都在密钥之前。
# 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 {secret_key}"))
#进一步说明
- Authorization Header 的解释
- "Bearer " 必须位于密钥之前的原因。
- OAuth Bible 对于理解请求的组成部分很有用
还有谁能解释 OP 的示例没有的其他原因吗?