командная строка — облачная печать Google через переполнение стека

Я пытаюсь создать приложение, которое автоматически печатает PDF после его создания для клиента. (по его просьбе) Я запустил облачный принтер, который прекрасно работает, если я пытаюсь использовать его с чем-то вроде хрома.

Все библиотеки для PHP чрезвычайно устарели (до 4 лет), и большинство из них полностью сломаны или почти не содержат документации о том, как их использовать, а попытка использовать собственную документацию Google — еще более страшный сон.

Лучшее, что я мог придумать, это использовать эту библиотеку: yasirsiddiqui / PHP-Google облако-печать, главным образом потому, что это был единственный, который я мог понять, как его использовать.

Однако когда я использую это для отправки задания на печать, владелец учетной записи (я) получает предупреждение по электронной почте о том, что кто-то подозрительный пытается войти в свою учетную запись, и он был заблокирован.

Кто-нибудь знает, есть ли (рабочая) библиотека для этого или есть альтернатива командной строки (предпочтительно), которую я мог бы использовать system() или же exec() с?

Примечание: у меня 0% знаний Python, и использование JavaScript для отправки этих работ НЕ вариант, потому что конечным пользователям не разрешено изменять документ.


Обновление [2015/09/08]: По какой-то причине Google не разрешает печать через некоторые учетные записи, даже когда используется OAuth2, для быстрого решения этой проблемы достаточно просто создать совершенно новую учетную запись и распечатать ее.

4

Решение

Я обновил код для использования Google OAuth2, и теперь не будет никаких проблем, связанных с заблокированным аккаунтом или угрозой безопасности и т. Д. Вот URL обновленного кода
https://github.com/yasirsiddiqui/php-google-cloud-print

7

Другие решения

Я никогда не слышал о печати в 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

2