是否可以与Google API服务帐户(https://developers.google.com/accounts/docs/OAuth2ServiceAccount)共享GCP打印机?
我尝试使用客户端电子邮件地址( id@developer.gserviceaccount.com )共享打印机,但打印机未显示在API调用/search
的响应中。
调用/submit
会导致错误(用户无权访问)
答案 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服务帐户,但它确实有效。如果您需要任何澄清,请不要犹豫。祝你好运。