2012-04-05 99 views
0

我正尝试从授权用户那里读取Google的Google文档并通过我的页面输出内容。带有zend的Google Docs API

一切正常,输出正常,但几秒钟后出现一个弹出窗口,出现错误“Google文档遇到错误,我们现在正在调查问题,请尝试以下临时解决方案之一:刷新此页面”

我的代码是这样的:

<?php 
    require_once 'Zend/Loader.php'; 
    Zend_Loader::loadClass('Zend_Gdata_Docs'); 
    Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); 
    Zend_Loader::loadClass('Zend_Gdata_Calendar'); 
    Zend_Loader::loadClass('Zend_Gdata_Docs_Query'); 

    $service = Zend_Gdata_Docs::AUTH_SERVICE_NAME; 
    $client_grabmark = Zend_Gdata_ClientLogin::getHttpClient('[email protected]', 'MYPASS', $service); 
    $service = new Zend_Gdata_Docs($client_grabmark); 
    $service->setMajorProtocolVersion(3); 


    $contentLink = 'https://docs.google.com/document/d/'DOCID'/edit'; 

    $data = $service->get($contentLink)->getBody(); 

    ob_start(); 
    echo $data; 
    ob_flush(); 
    exit 
?> 

我做错了吗?如果我尝试导出为PDF,那么一切正常(我只需更改链接),但我想显示该页面,就好像我在Google文档中一样。

任何帮助? 祝好运 DF

回答

2

您无法将Google文档页面的HTML内容输出到您自己的页面上下文中并使其工作。如果您想向用户显示文档,请使用HTTP位置标题将它们重定向到Google文档本身。

<?php 
header("Location: $contentLink"); 
?> 

如果用户您本来打算显示的文档,以没有权限访问该文档,有两种选择:

  1. 共享的文档使用文档列表API用户。
  2. 使用API​​将文档导出为文本,HTML或PDF,然后将其显示给用户。

这些选项在documentation中有详细说明。

+0

我无法重定向到Google文档本身,因为我的页面的最终用户因为它没有文档中的权限。我使用我的凭据来阅读文档,然后我想将文档输出给其他人。 – Felix 2012-04-05 18:28:24

+0

我编辑的答案也解决您的评论。 – 2012-04-05 23:00:11

+0

你好Vic.Thanks你的答案,但我已经阅读了文档,我知道这两个选项。第一个选项对我所需要的并不好,第二个选项适用于某些文档,但不适用于Spreadsheets。我已经开发了第三个选项(我在第一个问题中解释的选项)**,它可以工作。我的页面会输出Google文档,但该页面始终尝试刷新并不断收到描述的错误。 – Felix 2012-04-05 23:33:27