Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用带有R的httr包的oauth2.0令牌大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

问题 包httr在R中提供CURL包装(参见package documentation). 我是http和API的新手.我的麻烦是让oauth2.0认证工作.我尝试了各种语法规范,并获得错误或状态401. 使用oauth2.0令牌并使用httr发出GET()请求的正确方法是什么? 代码尝试 # Set UP url = "https://canvas.{institution}.edu/ap
问题

包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的例子不起作用的其他原因?

大佬总结

以上是大佬教程为你收集整理的使用带有R的httr包的oauth2.0令牌全部内容,希望文章能够帮你解决使用带有R的httr包的oauth2.0令牌所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。