RGoogleDocs (или RCurl) дает проблему с сертификатом SSL - PullRequest
1 голос
/ 09 августа 2010

Сегодня я использовал один из моих любимых R-пакетов для чтения данных из электронной таблицы Google.Это не сработало бы.Эта проблема возникает на всех моих компьютерах (я использую Windows), и это, кажется, новая проблема.Я использую версию RGoogleDocs 0,4-1

library(RGoogleDocs)
ps <-readline(prompt="get the password in ")
sheets.con = getGoogleDocsConnection(getGoogleAuth("fxxxh@gmail.com", ps, service ="wise"))
ts2=getWorksheets("OnCall",sheets.con)

И это то, что я получаю после запуска последней строки.

Ошибка в curlPerform (curl = curl, .opts= opts, .encoding = .encoding): проблема с сертификатом SSL, проверьте, что сертификат CA в порядке.Подробности: ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: проверка сертификата не удалась

Я прочитал кое-что и натолкнулся на некоторую интересную, но, по крайней мере, не полезную мне информацию.1012 * Когда я пытаюсь взаимодействовать с URL через https, я получаю сообщение об ошибке:
Curl: проблема с сертификатом SSL, проверьте, что сертификат CA в порядке

Я получил очень большое графическое сообщение, но не знал, как реализовать решение в моем сценарии.Я опустил следующую строку перед getWorksheets.

x = getURLContent("https://www.google.com", ssl.verifypeer = FALSE)

Это не сработало, поэтому я попытался

ts2=getWorksheets("OnCall",sheets.con,ssl.verifypeer = FALSE)

Это также не сработало.

Интересно, что следующеелиния работает

getDocs(sheets.con,folders = FALSE)

Что вы предлагаете мне попробовать, чтобы она снова заработала?Спасибо.

Ответы [ 2 ]

3 голосов
/ 31 марта 2011

У меня больше нет этой проблемы. Я не совсем помню график того, когда именно я преодолел проблему, и не могу вспомнить, кто помог мне попасть сюда, но вот типичная сессия, которая работает.

library(RGoogleDocs)
if(exists("ps")) print("got password, keep going") else ps <-readline(prompt="get the password in ")  #conditional password asking
options(RCurlOptions = list(capath = system.file("CurlSSL", "cacert.pem", package = "RCurl"), ssl.verifypeer = FALSE))
sheets.con = getGoogleDocsConnection(getGoogleAuth("fjh@gmail.com", ps, service ="wise")) 
#WARNING: this would prevent curl from detecting a 'man in the middle' attack
ts2=getWorksheets("name of workbook here",sheets.con)
names(ts2)
sheet.1 <-sheetAsMatrix(ts2$"Sheet 1",header=TRUE, as.data.frame=TRUE, trim=TRUE) #Get one sheet
other <-sheetAsMatrix(ts2$"whatever name of tab",header=TRUE, as.data.frame=TRUE, trim=TRUE) #Get other sheet

Вам это помогает?

0 голосов
/ 10 августа 2010

Возможно, у вас не установлен комплект сертификатов . Я установил их на OS X. Вы также можете найти их на curl site

...