2013-03-27 3 views
0

문제는 내가 curl을 사용하여 게시 된 프리젠 테이션에 PHP를 통해 액세스하려고 할 때 발생합니다. 일반 문서는 말리지 만 프레젠테이션은 볼 수 없습니다. 나는 문서 작업을 검색하는이 방법을 만들거나 대안을 찾고있다. Google 지원에 대한 답변이 없으므로 스택 오버플로를 권장합니다. 내가 SSL을 사용하는 내 개발 상자에 내 테스트 도메인에 대한 가상 호스트를 추가curl 및 php를 사용하여 Google 문서 프리젠 테이션을 검색하는 데 문제가 발생했습니다.

Secure Connection Failed 

An error occurred during a connection to develop.willf-rtb-dev.switchsoft.com. 

SSL received a record that exceeded the maximum permissible length. 

(Error code: ssl_error_rx_record_too_long) 

: 컬을 통해 프리젠 테이션에 액세스하려고 처음에는

는 나에게이 오류를했다. 문제가 발생하여과에

https://support.google.com/accounts/bin/answer.py?hl=en&answer=32050 (내 쿠키를 삭제 말해 : 컬이 페이지에 저를 리디렉션을 통해 프리젠 테이션에 액세스를 시도,

<VirtualHost *:443> 
    SSLEngine on 
    SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem 
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key 

이 가상 호스트를 추가 한 후이 가상 호스트는 다음 행으로 시작 내 쿠키 설정)

너무 많은 쿠키 파일을 작성하는 컬 코드가 있습니다.이 파일의 내용은 컬을 사용하여 프리젠 테이션에 액세스하려고 시도한 후 다음과 같습니다. 파일의 내용을 지우는 것은 좋지 않으며, 둘 다이 파일에 쓰지 말라고 말하지도 않습니다.

# Netscape HTTP Cookie File 
# http://curl.haxx.se/rfc/cookie_spec.html 
# This file was generated by libcurl! Edit at your own risk. 

#HttpOnly_.google.com TRUE / FALSE 1380146248 NID 67=q47Xyj4FU2_uuYosZzvr_50-o2q9qD0PG8avG3oTg0s2qlmjzGFqT0UhWpwLOEt9TWqP1jf77npfX9OBebQ8fqn6ID7b4b-jBoFbyEbCFkrQhcBIKekLS1fQI-mLw3Pg 

내 PHP 컬 코드는 다음과 같습니다 : 나는 시도

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSLVERSION,3); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,3); 

$cookieFile = TMP_DIRECTORY . '/curlcookies.txt'; 
if (!file_exists($cookieFile)) { 
file_put_contents($cookieFile, ''); 
} 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); 

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0 FirePHP/0.4"); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); 

$result = curl_exec($ch); 
curl_close($ch); 
return $result; 

프레젠테이션의 HTML 다운로드 URL이 스타일을 사용 :

https://docs.google.com/feeds/download/presentations/Export?exportFormat=html&format=html&id=1RDANgsJWv841KvQUROKhyikTuwQGXC5Q1XFvXDwAfMw

이 나를 필요를 로그인하면 서명 할 때 오류가 발생합니다.

Sorry, the file you have requested does not exist. 

Please check the address and try again. 

exportFormat = pdf를 사용할 때이 오류가 발생하지 않습니다. 이는 내가 로그인 한 동안 작동하지만 필요한 것이 아닙니다.

나는 아직 그것을 사용하려고 시도하지 않은하지만 난 발견 를 조사 가치가있을 수도 있습니다 여기에 몇 가지 PHP 코드 :

https://developers.google.com/drive/manage-downloads

어떤 힌트 또는 하나 크게 될이 주제에 저를 줄 수있는 도움 고맙습니다.

안부

윌 페레

+0

아이디어가 있으십니까? 어떤 사람? 감사합니다. –

답변

1

난 당신이 HTML로

https://docs.google.com/feeds/download/presentations/Export?exportFormat=html&format=html&id=1RDANgsJWv841KvQUROKhyikTuwQGXC5Q1XFvXDwAfMw

공지 사항을 내보낼 시도 어디에 문제가 수출 문으로 생각하는 구글 프리젠 테이션 프론트 엔드에서, 그것을 pdf, pptx, txt, jpg, png, svg로만 내보낼 수 있습니다. "PDF", "PNG"및 "PPT를"구글 문서에서

https://developers.google.com/google-apps/documents-list/v2/reference#ExportParameters

, 또한 프리젠 테이션 값은 단지 다음과 같은 것을 말한다.

+0

안녕하세요. 답변 주셔서 대단히 감사합니다. 처음 게시물을 읽었을 때 나는이 문제를 완전히 명확히하지 못했다고 생각한다. 현재 위에서 설명한 방법을 사용하지 않고 대신 게시 된 프리젠 테이션에 curl을 통해 게시 된 URL에 문의하여 게시 된 프리젠 테이션에 액세스하려고합니다. https://docs.google.com/presentation/d/1RDANgsJWv841KvQUROKhyikTuwQGXC5Q1XFvXDwAfMw/pub?start=false&loop = false & delayms = 3000입니다. 위에 설명 된 방법은 내가 후퇴로 사용할 생각이었습니다. 도와 주셔서 대단히 감사합니다. –

+0

나는 당신이 액세스하려고하는 URL은 브라우저를 통해서만 접근 할 수 있다고 생각합니다. 프리젠 테이션을 다운로드하려면 curl을 통해 https://docs.google.com/feeds/download/presentations/Export?exportFormat=pdf&id=1RDANgsJWv841KvQUROKhyikTuwQGXC5Q1XFvXDwAfMw에 액세스해야합니다. – Emily