我正在尝试使用RCurl进行oauth 2身份验证。我的代码是:
library(RCurl)
myOpts <- curlOptions(httpheader =
c(Accept="application/json",
"Content-Type"="application/x-www-form-urlencoded"))
token <- postForm(authURL,
.params = list(
client_id ="aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
client_secret = "bbbbbbbbbbbbbbbbbbbbbbbbbbbb",
username = "xxxxx@yyyy.zzz",
password = pswd),
.opts = myOpts,
style="POST")
代码在R / Windows上运行得很好,但在OS X El Capitan上却没有。在OS X上,我收到错误
Error in function (type, msg, asError = TRUE) :
SSLRead() return error -9806
我认为在OS X附带的curl / libcurl版本中存在SSL问题,并且在其他地方有记录,但我还没有找到解决方法。对于它的价值,我遇到了与httr包类似的问题。如何更新curl并使其与RCurl完美配合?
我的问题与How do I get RCurl to connect to POST SSL on OS X Yosemite?非常相似,但El Capitan难以按照该帖子的回答中的建议复制curl-config文件。
答案 0 :(得分:0)
您没有说明您正在使用的R或libcurl的版本或安装方式,因此,对您的问题的完整答案可能需要多个页面来涵盖所有可能的变体。 El Capitan改变了安全设计。谷歌搜索&#34;无根的capitan&#34;或者&#34; el capitan系统完整性保护&#34;。现在,大多数/usr/
都被锁定,/usr/local/
除外。它是possible to temporarily disable that feature,但在你这样做之前,我会建议检查一下自制软件是否已经更新以适应这种变化。 (我认为它可能一直在使用/usr/local/
。)我还要确保您了解自制程序安装过程与ROS的OSX分支维护者的预期有何不同。
为了进行比较,我确实安装了RCurl,来自IIRC的二进制文件,安装在R 3.2.2的二进制版本中,我的curl版本报告看起来像。
machine-name-redacted-mac-pro:~ redacted$ curl --version
curl 7.43.0 (x86_64-apple-darwin15.0) libcurl/7.43.0 SecureTransport zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets
# and in R
> packageVersion("RCurl")
[1] ‘1.95.4.7’
> system("which curl")
/usr/bin/curl
答案 1 :(得分:0)
我得到以下工作:
我很想知道是否有更好的方式。