是否可以与 Google API 服务帐户(https://developers.google.com/accounts/docs/OAuth2ServiceAccount)共享 GCP 打印机?
我尝试与客户电子邮件地址 ( id@developer.gserviceaccount.com ) 共享打印机,但打印机未显示在对 API 调用的响应中/search
。调用/submit
导致错误(用户无权访问)
是否可以与 Google API 服务帐户(https://developers.google.com/accounts/docs/OAuth2ServiceAccount)共享 GCP 打印机?
我尝试与客户电子邮件地址 ( id@developer.gserviceaccount.com ) 共享打印机,但打印机未显示在对 API 调用的响应中/search
。调用/submit
导致错误(用户无权访问)
由于您自己与服务帐户共享打印机,我们可以假设您知道服务帐户被邀请到的打印机的“打印机 ID”。
让服务帐户/processinvite
使用以下(强制)参数调用请求:
printerid
=已知打印机 IDaccept
=true
之后,打印机将出现在/search
印刷愉快!
我相信您遇到了“待处理”问题。
也就是说,您确实与id@developer.gserviceaccount.com帐户共享了您的打印机,但其他用户(在本例中为id@developer.gserviceaccount.com)必须接受共享打印机的邀请。
您可以通过发出/print
请求来检查这一点,您将看到一个
“is_pending”:真
在这种情况下access
,您的用户 ( id@developer.gserviceaccount.com ) 部分中的元素。
不用说,将此元素设置为 true 的帐户无法打印 - 因此“用户未获得授权”。信息。
我知道无法接受给定服务帐户的邀请,但是有一种解决方法:
当您共享打印机时,您必须与 google 群组共享它(使用群组的电子邮件地址,您可以在群组管理控制台的某处找到该地址)并且群组管理员(例如您的 gmail 帐户)必须接受整个群组的邀请。
可以在此处找到有关如何创建组的更多信息。
我已经使用 GAE 服务帐户进行了尝试,并且可以正常工作。如果您需要任何澄清,请不要犹豫。祝你好运。