使用 PHP 进行谷歌云打印

4
我正在尝试创建一个应用程序,在客户生成PDF之后自动打印PDF文件(按照客户要求)。我已经成功运行了云打印机,如果我使用Chrome等工具来打印,它可以完美地工作。
所有针对PHP的库都非常过时(长达4年),大部分都是无法正常工作或提供非常少的文档说明。尝试使用谷歌的官方文档甚至更加困难。
我能找到的最好的解决方法是使用这个库:yasirsiddiqui/php-google-cloud-print,主要是因为这是我唯一能够弄清楚如何使用的库。
但是,当我使用此库提交打印作业时,账户所有者(即我)会收到警告电子邮件,说明有可疑的人试图登录他们的帐户并且已被阻止。
是否有任何人知道是否有(可行的)库可以做到这点?另外,是否有命令行替代方案(首选),它可以与system()exec()一起使用?
注意:我对Python没有任何了解,而使用JavaScript提交这些作业也不是选项,因为最终用户不允许更改文档。
更新[2015/09/08]:由于某种原因,谷歌即使使用OAuth2也不允许通过某些帐户打印,通过创建一个全新的帐户并使用它进行打印的快速解决方法。

1
代码已更新为使用Google OAuth2,现在您将不会遇到任何问题。https://github.com/yasirsiddiqui/php-google-cloud-print - Yasir Siddiqui
@YasirSiddiqui 感谢你更新的代码! - Paradoxis
2个回答

8

我从 Git Hub 下载了你的源代码,在运行 index.php 文件后,我访问链接 https://www.google.com/cloudprint#jobs 并可以看到我想要打印的文件列表,但我的打印机没有打印出任何列表中的文件。我不知道发生了什么。 - J Ha

2
我从未听说过谷歌云打印, 但它似乎只是一个简单的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


1
我找到了一种替代方法,即通过exec()命令调用JavaScript,因为使用PHP几乎是不可能的。无论如何,还是谢谢! - Paradoxis
代码已更新为使用Google OAuth2,现在您将不会遇到任何问题。 - Yasir Siddiqui

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接