首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中使用的Github API授权码

R中使用的Github API授权码
EN

Stack Overflow用户
提问于 2015-06-13 21:36:17
回答 2查看 10K关注 0票数 8

我正在尝试访问API以获取有关http://github.com的信息。我在github中为这个URL创建了应用程序(在开发者应用程序中),并尝试使用httr库通过R进行访问。以下是代码

代码语言:javascript
复制
library(httr)
oauth_endpoints("github")
myapp <- oauth_app("github",key = "#####################",secret = "########################" )

(密钥替换为客户端id,secret替换为secred id)

代码语言:javascript
复制
github_token <- oauth2.0_token(oauth_endpoints("github"), myapp)

这让我想到了以下几点

使用本地文件缓存R会话之间的OAuth访问凭据? 1:是2:否

我选择了2(正如我之前尝试的选项1),然后会显示以下内容

代码语言:javascript
复制
httpuv not installed, defaulting to out-of-band authentication
Please point your browser to the following url: 

  https://github.com/login/oauth/authorize?client_id=72939e1b6d499f4f1894&scope=&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code

输入授权码谁能告诉我授权码是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-13 22:30:26

授权码是github在正确的OAuth 2.0“舞蹈”(使用Hadley Wickham的术语)之后提供的代码。最简单的方法是使用httpuv (install.packages("httpuv"))。安装了github后,在1410端口上设置了一个本地you服务器,前提是您已经适当地设置了github应用程序(重定向到http://localhost:1410)。

如果你没有安装httpuv,那么httr的OAuth 2.0功能默认为带外授权。这会要求GitHub重定向到urn:ietf:wg:oauth:2.0:oob&response_type=cod,它应该在浏览器中显示授权码,以便可以复制和粘贴它。然而,几乎可以肯定的是,您的重定向URL设置不同,因此github抱怨存在重定向URI不匹配。我不确定是否可以将github配置为允许oob重定向(但我刚刚尝试过,但似乎没有)。

不使用httpuv的唯一原因是,如果您在不允许在端口1410上设置服务器的机器上使用R,或者如果您正在通过server或RStudio会话在远程机器上使用R。在后一种情况下,将在远程计算机上设置the服务器,但您的浏览器将尝试连接到本地计算机上的端口1410。您可以通过将SSH端口从本地计算机上的端口1410转发到远程计算机上的端口1410来解决此问题。

还要注意,与oauth2-github演示的当前CRAN版本不同,https://github.com/hadley/httr/blob/master/demo/oauth2-github.r上的演示代码包含了Hadley的应用程序的秘密,因此您可以按原样运行演示,而无需首先设置自己的应用程序。

票数 12
EN

Stack Overflow用户

发布于 2015-09-19 10:17:04

以下是对我有效的方法:

https://github.com/rstudio/httpuv安装HTTPUV包

还可以为当前用户设置运行devtools::install_github(“rstudio/ \\R\library”)`的httpuv权限

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30819293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档