当前位置: 首页 > 知识库问答 >
问题:

使用oauth2。0个带有R的httr包的令牌

田兴怀
2023-03-14

httr在R中提供CURL包装器(请参阅包留档)。

我是HTTP和API的新手。我的麻烦是长胖。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

共有1个答案

柴瀚昂
2023-03-14

在这个使用Canvas API的特定用例中,请求头中需要额外的信息。

使用httrR包中的GET函数,使用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 {secret_key}"))

#进一步解释

  • 授权标题的说明
  • 为什么“持票人”必须先于钥匙
  • OAuth圣经有助于理解请求的组成部分

还有谁能解释OP的例子不起作用的其他原因吗?

 类似资料:
  • 我对r完全陌生 我试图安装httr软件包。 我首先安装了pacman,然后尝试通过运行来加载httr。 它没有成功。它在终端中显示了以下消息 - 将软件包安装到“/home/|用户名|/R/x86_64-pc-linux-gnu-库/3.6”(因为“lib”未指定)中也安装依赖项“curl”,“openssl” 正在尝试 URL 'https://cloud.r-project.org/src/c

  • 我有一个由这个JSON描述的node.js包: 文件包含以下代码: 而包含基于YARGS的命令行工具的代码。 现在,我想在这个包中添加第二个命令,但我不知道应该如何继续,因为只能有一个“main”。 有谁有例子吗?

  • 我的问题很“简单”。我不知道如何设置OAUTH2身份验证服务器以接受用户名/密码并返回令牌。 如果我使用: 卷曲:password@localhost:8081/oauth/token\?grant\u type=client\u credentials它返回令牌,但问题是它在DB中注册用户“curl”,所以。。。不太好。。。 如果我使用: http://www.example.com:8081/

  • 我试图创建spring rest服务,它是由我自己的oauth2资源服务器自动引诱的。我创建了资源服务器: {“error”:“server_error”,“error_description”:“java.io.NotSerializableException:org.springframework.security.crypto.bcrypt.bcryptPasswordenCoder”} 在

  • 我想将OAuth2用于我的RESTSpring启动项目。使用一些示例,我为OAuth2创建了配置: 这是我的SecurityConfiguration类: 我尝试用两个简单的请求来检查我的应用程序: 首先,我检查了两个请求: /api/free返回代码200和字符串“免授权” /api/secured返回{"timestamp":1487451065106," status":403," erro