【问题标题】:Google Docs API with zend带有 Zend 的 Google Docs API
【发布时间】:2012-04-05 14:15:09
【问题描述】:

我正在尝试使用授权用户从 Google 读取文档并通过我的页面输出内容。

一切正常,输出正常,但几秒钟后,弹出窗口出现错误 “Google Docs 遇到错误。我们现在正在调查问题。请尝试其中一种临时方法解决方案:重新加载此页面”

我的代码是这样的:

<?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('MYUSER@gmail.com', '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 Docs 中一样显示页面。

有什么帮助吗? 最好的祝福 东风

【问题讨论】:

    标签: php zend-framework google-docs-api


    【解决方案1】:

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

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

    如果您打算向其显示文档的用户没有访问文档的权限,则有两种选择:

    1. 使用 Documents List API 将文档分享给用户。
    2. 使用 API 将文档导出为文本、HTML 或 PDF,然后将其显示给用户。

    documentation 中详细介绍了这些选项。

    【讨论】:

    • 我无法重定向到 Google Doc 本身,因为我的页面的最终用户,因为它在文档中没有权限。我使用我的凭据阅读文档,然后我想将文档输出给其他人。
    • 您好 Vic。感谢您的回答,但我已经阅读了文档并且知道这两个选项。第一个选项不适合我想要的东西,第二个选项适用于某些文档但不适用于电子表格。我开发了第三种选择(我在第一个问题中解释过的那个)它有效。我的页面确实输出了 Google 文档,但页面总是尝试刷新并不断收到描述的错误。
    • 第二个选项也适用于电子表格,因为电子表格具有 PDF 导出功能。很抱歉,您开发的选项不起作用。你甚至已经证明它不起作用。有许多跨域脚本问题无法通过从您自己的域/应用程序生成 Google Docs 输出来解决。除此之外,您还试图规避 Google Docs 安全模型,这是 Google Docs 不允许这样做的另一个原因。请使用我提出的选项 2 重试。文档中提到了如何导出电子表格。
    • 嗨,维克。再次感谢您的回答。看来我必须保留导出选项。我知道电子表格可以导出为 PDF,但结果不是很好,我会尝试 HTML 导出。我现在遇到了另一个问题,当我在 Google Docs 中有一个 PDF 文档时,我不能使用相同的链接(作为文档)导出为 PDF,因为该文档已经是 PDF。你知道我怎样才能得到这些文件吗?
    • 已经是 PDF 的文档可以在其“内容”链接下载,该链接是 API 中每个资源条目都提供的字段。
    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多