加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 00:32:31 所属栏目:Linux 来源:网络整理
导读:问题 包httr在R中提供CURL包装(参见package documentation). 我是HTTP和API的新手.我的麻烦是让oauth2.0认证工作.我尝试了各种语法规范,并获得错误或状态401. 使用oauth2.0令牌并使用httr发出GET()请求的正确方法是什么? 代码尝试 # Set UP url = "https://
问题

包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附加信息.

使用httr R包中的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 {secretkey}"))

进一步的解释

> Authorization Header的说明
>为什么“Bearer “必须在钥匙之前去的理由.
> OAuth Bible对于理解请求的组件很有用

任何人都可以解释为什么OP的例子不起作用的其他原因?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读