问题
包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的例子不起作用的其他原因?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。