2009-12-15 10 views
3

Google 스프레드 시트를로드하고 일부 데이터를로드하는 코드가 있습니다. 문제의 스프레드 시트가 공개 된 경우 사용자 이름/비밀번호가 필요하지 않도록 코드를 수정하려면 어떻게해야합니까?공개 스프레드 시트에 Zend_Gdata_Spreadsheets를 사용 하시겠습니까?

$key="keytothespreadsheet"; 
$user="[email protected]"; 
$pass="*****"; 

$authService = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME; 
$httpClient = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $authService); 
$gdClient = new Zend_Gdata_Spreadsheets($httpClient); 
$query = new Zend_Gdata_Spreadsheets_DocumentQuery(); 
$query->setSpreadsheetKey($key); 
$feed = $gdClient->getWorksheetFeed($query); 
print_r($feed); 

답변

2

다음 줄에서 HTTP 클라이언트는 선택 사항입니다 :

$gdClient = new Zend_Gdata_Spreadsheets($httpClient); 


그래서, 그냥 전달하지 않습니다. 다음은 동일한 내용입니다.

0

@Matt와 마찬가지로 자격 증명을 제공하지 않고 공용 스프레드 시트에 액세스하려고했습니다. @Derek Illchuk 덕분에, 거기에가는 길의 일부를 얻었습니다. 파일>은 웹 기능에 게시하는 것이

  1. 참고 웹에 공유 설정> 공개와 같은 것이 아니다 : 나는 다음과 같은 배운 때까지 여전히하지만, 작동하지 않는. '웹에 게시'를 사용 설정하는 것을 잊어 버린 경우이 오류가 발생합니다 : "예상 응답 코드 200, 400이 URL의 스프레드 시트를 찾을 수 없습니다. 올바른 URL과 소유자가 있는지 확인하십시오 스프레드 시트의 파일을 삭제하지 않았습니다. " 은 "웹에 게시"설정에서

  2. , 취소해야 "자신의 _ __ 계정으로 로그인해야 볼 수 있습니다.". 그렇지 않으면 "예상 응답 코드 200, 403 있습니다. 스프레드 시트에 대한보기 권한이 없습니다. 제대로 인증되었는지 확인하십시오."

  3. Google's documentation에 따르면 "스프레드 시트 피드는 '개인'가시성과 '전체'투영을 지원합니다." 그러나 '공개'가시성과 '기본'프로젝션을 지정해야한다는 사실을 알게되었습니다. 그렇지 않으면이 오류가 있습니다. "예상 응답 코드 200, 501이 유형의 작업에 대해 올바르지 않거나 지원되지 않는 프로젝션이 있습니다." 여기

은 나를 위해 일한 것입니다 :

$spreadsheetService = new Zend_Gdata_Spreadsheets(null); 
    $query = new Zend_Gdata_Spreadsheets_CellQuery(); 
    $query->setSpreadsheetKey($spreadsheetKey); 
    $query->setWorksheetId($worksheetId); 
    $query->setVisibility('public'); //options are 'private' or 'public' 
    $query->setProjection('basic'); //options are 'full' or 'basic' 
    $cellFeed = $spreadsheetService->getCellFeed($query); 

    foreach ($cellFeed as $cellEntry) { 
     $text = $cellEntry->content->text; 
     //Do something 
     break; //I only wanted the first cell (R1C1). 
    }