【问题标题】:Google cloud printing via PHP通过 PHP 进行谷歌云打印
【发布时间】:2014-11-22 00:59:41
【问题描述】:

我正在尝试制作一个在为客户端生成 PDF 后自动打印 PDF 的应用程序。 (应他的要求)我启动并运行了一台云打印机,如果我尝试将它与 chrome 之类的东西一起使用,它工作得非常好。

PHP 的所有库都非常过时(长达 4 年之久),其中大部分已完全损坏或几乎没有提供有关如何使用它们的文档,而尝试使用 google 自己的文档更是一场噩梦

我能想到的最好的办法就是使用这个库:yasirsiddiqui/php-google-cloud-print,主要是因为它是我唯一能真正弄清楚如何使用它的库。

但是,当我使用它提交打印作业时,帐户所有者(我)会收到一封警告电子邮件,提示有可疑人员试图登录他们的帐户并且该帐户已被阻止。

有谁知道是否有(工作)库可以执行此操作,或者是否有可以使用system()exec() 的命令行替代方案(首选)?

注意:我对 python 的了解为 0%,并且使用 JavaScript 提交这些作业不是一种选择,因为不允许最终用户更改文档。


更新 [2015/09/08]: 出于某种原因,即使使用 OAuth2,Google 也不允许通过某些帐户进行打印,解决此问题的快速方法是创建一个全新的帐户并用它打印。

【问题讨论】:

标签: php command-line google-cloud-print


【解决方案1】:

我已更新代码以使用 Google OAuth2,现在不会有任何与帐户被阻止或安全风险等相关的问题。这是更新代码的 url https://github.com/yasirsiddiqui/php-google-cloud-print

【讨论】:

  • 我从 git hub 下载了您的源代码,运行 index.php 文件后,我转到链接 google.com/cloudprint#jobs 并可以看到我要打印的文件列表,但我的打印机不打印任何文件该列表中的文件。我不知道会发生什么
【解决方案2】:

我从未听说过 Google Cloud 打印,但它似乎只是一个简单的 REST API,在这种情况下,您不需要与它交互的库,只需使用 CURL 之类的东西。这是一个页面,可让您测试他们提供的各种接口:

https://www.google.com/cloudprint/simulate.html

此处提供了用于提交作业的干参数列表:

https://developers.google.com/cloud-print/docs/appInterfaces#submit

我只会使用 CURL 来发布我的请求,而不必担心过度设计一些庞大的类,尤其是当您不需要 API 中的所有可用选项时。您应该查看 Python 示例 - 我知道您对 Python 没有太多经验,但是您设置为登录等的 HTTP 标头将与 PHP 中的相同:

login.putheader('content-type', 'application/x-www-form-urlencoded')

等同于:

$request_headers[] = 'content-type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);`

我确实在这里找到了一个 API,但它位于付费墙后面,因此我无法证明它的质量 - 如果您是为客户执行此操作,尽管检查它可能值得节省金钱和精力:

http://www.phpgang.com/how-to-configure-google-cloud-api-in-php_288.html

【讨论】:

  • 我找到了一个替代方法,它通过 exec() 命令调用 java 脚本,因为用 PHP 执行此操作几乎是不可能的。无论如何,谢谢!
  • 代码已更新为使用 Google OAuth2,现在您不会遇到任何问题。
猜你喜欢
  • 2015-04-23
  • 2012-04-12
  • 2012-09-23
  • 2016-04-15
  • 2014-07-21
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多