php-google-spreadsheet-client getByTitle返回null

时间:2014-04-22 16:28:50

标签: php google-spreadsheet-api

我正在使用此库https://github.com/asimlqt/php-google-spreadsheet-client与Google的电子表格API进行互动。

使用提供的示例,我有这个wip代码:

$request = new Google\Spreadsheet\Request($access['access_token']);
    $serviceRequest = new Google\Spreadsheet\DefaultServiceRequest($request);
    Google\Spreadsheet\ServiceRequestFactory::setInstance($serviceRequest);

    $spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
    $spreadsheetFeed = $spreadsheetService->getSpreadsheets();
    var_dump($spreadsheetFeed);

    $spreadsheet = $spreadsheetFeed->getByTitle('a spreadsheet');

    echo "<h1>Start spreadsheet single feed</h1>";
    var_dump($spreadsheet);

最后一行意外地打印为空。 我希望熟悉图书馆的人能够朝着正确的方向推动我。

BTW,这就是$ spreadsheetFeed转储显示的内容:

    object(Google\Spreadsheet\SpreadsheetFeed)#263 (2) { 
["xml":"Google\Spreadsheet\SpreadsheetFeed":private]=>
 object(SimpleXMLElement)#200 (5) { ["id"]=> string(63) 
"https://spreadsheets.google.com/feeds/spreadsheets/private/full" 
["updated"]=> string(24) "2014-04-22T15:41:32.296Z" 
["category"]=> object(SimpleXMLElement)#244 (1) {
 ["@attributes"]=> 
array(2) { 
["scheme"]=> string(43) "http://schemas.google.com/spreadsheets/2006" 
["term"]=> string(55) "http://schemas.google.com/spreadsheets/2006#spreadsheet" 
} 
} 
["title"]=> string(100) "Available Spreadsheets - <redacted!>" 
["link"]=> array(3) { 
[0]=> object(SimpleXMLElement)#243 (1) {
 ["@attributes"]=> array(3) {
 ["rel"]=> string(9) "alternate" 
["type"]=> string(9) "text/html" ["href"]=> string(22) "http://docs.google.com" 
} 
}
 [1]=> object(SimpleXMLElement)#245 (1) { 
["@attributes"]=> array(3) { 
["rel"]=> string(37) "http://schemas.google.com/g/2005#feed" 
["type"]=> string(20) "application/atom+xml" 
["href"]=> string(63) "https://spreadsheets.google.com/feeds/spreadsheets/private/full" 
} 
} 
[2]=> object(SimpleXMLElement)#246 (1) { 
["@attributes"]=> array(3) { 
["rel"]=> string(4) "self" 
["type"]=> string(20) "application/atom+xml" 
["href"]=> string(63) "https://spreadsheets.google.com/feeds/spreadsheets/private/full" 
} 
} 
} 
} 
["storage":"ArrayIterator":private]=> array(0) { 
} 
}

它似乎根本不包含任何高度混乱的电子表格,因为我通过驱动器api确认在代码中早先成功存在所需的电子表格。显然,我使用的两个库之间存在某种差异,没有记录,但我不知道要调试它。

驱动程序库是google inhouse one https://github.com/google/google-api-php-client

2 个答案:

答案 0 :(得分:2)

我无法查看应该在spreadsheetFeed中显示的现有工作表,我找到了karl kranich在他的网站上发现的文章,声明该文档需要与具有编辑权限的誓言开发人员电子邮件地址共享。与编辑权限共享后,我现在在列表中看到它。

答案 1 :(得分:0)

只是给出一些解决方案(也许是其他人的指针)。

我回过头来解决这个问题,并发现谷歌电子表格api中有一个未说出口的假设,即所访问的文件是本机谷歌电子表格。一旦我改变文件创建来创建而不是.xls文件,一切都自行解决。