与Google API服务帐户共享打印机

时间:2013-11-04 12:29:12

标签: google-cloud-print

是否可以与Google API服务帐户(https://developers.google.com/accounts/docs/OAuth2ServiceAccount)共享GCP打印机?

我尝试使用客户端电子邮件地址( id@developer.gserviceaccount.com )共享打印机,但打印机未显示在API调用/search的响应中。 调用/submit会导致错误(用户无权访问

2 个答案:

答案 0 :(得分:21)

当您自己与服务帐户共享打印机时,我们可以假设您知道"打印机ID"已邀请服务帐户的打印机。

让服务帐户使用以下(必填)参数调用/processinvite请求:

  • printerid = the-known-printer-id
  • accept = true

之后,打印机将显示在/search

快乐印刷!

答案 1 :(得分:15)

我相信你遇到了“正在等待”的问题。也就是说,您确实与“id@developer.gserviceaccount.com”帐户共享了您的打印机,但另一个用户(在这种情况下为“id@developer.gserviceaccount.com”)必须接受共享打印机的邀请。您可以通过发出/print请求进行检查,然后您会看到

  

“is_pending”:true

您的用户的access部分中的

元素 - 在这种情况下为“id@developer.gserviceaccount.com”。 有人说,将此元素设置为true的帐户无法打印 - 因此“用户未经授权”。信息。我知道无法接受给定服务帐户的邀请,但有一种解决方法。您可以使用可以接受共享打印机的帐户(例如您的Gmail帐户)创建一个私人Google群组。然后将服务帐户(“id@developer.gserviceaccount.com”)添加到组et voila。您可以使用服务帐户打印;)。共享打印机时,您必须与谷歌小组共享(使用您可以在群组管理控制台中找到的群组电子邮件地址),群组管理员(例如您的Gmail帐户)必须接受整个群组的邀请。可以找到有关如何创建组的更多信息here。我已尝试使用GAE服务帐户,但它确实有效。如果您需要任何澄清,请不要犹豫。祝你好运。