2013-11-04 9 views
13

GCPプリンタをGoogle APIサービスアカウント(https://developers.google.com/accounts/docs/OAuth2ServiceAccount)と共有することはできますか?Google APIサービスアカウントを持つプリンタを共有する

私は、クライアントのメールアドレス([email protected])でプリンタを共有しようとしましたが、プリンタは、API呼び出し/searchに対応して示されていません。 呼び出す/submit

答えて

14

私はあなたが「保留されている」問題が発生していると考えている(ユーザーはアクセスを持っていません)エラーにつながります。つまり、プリンタを "[email protected]"アカウントで共有しましたが、他のユーザー(この場合は "[email protected]")はプリンタを共有するための招待を受け入れる必要があります。あなたは/print要求を発行することによって、これを確認することができますし、

「is_pending」が表示されます:あなたのユーザーのためのaccessセクションで真

要素を - 「[email protected]」でこの場合。 この要素がtrueに設定されているアカウントは印刷できないため、「ユーザーは承認されていません。メッセージ。私は、特定のサービスアカウントの招待を受け入れる方法がないことを知っていますが、回避策があります。共有プリンタ(Gmailアカウントなど)を受け入れることができるアカウントでプライベートGoogleグループを作成できます。次に、サービスアカウント( "[email protected]")をグループに追加します。あなたはサービスアカウントで印刷することができます;)。プリンタを共有するときは、グループ管理コンソールのどこかにあるグループのメールアドレスを使用してGoogleグループと共有し、グループ管理者(Gmailアカウントなど)はグループ全体の招待を受け入れる必要があります。グループの作成方法の詳細は、hereを参照してください。私はこれをGAEサービスアカウントで試してみました。何か明確化が必要な場合は、躊躇しないでください。がんばろう。

+0

大変ありがとうございます!これは今のところ十分に機能しています! – Chris

+0

あなたは絶対天才です。 – Sophtware

10

あなた自身がサービスアカウントとプリンタを共有しているので、サービスアカウントが招待されているプリンタの「プリンタID」を知っていることが前提です。

サービスアカウントを持ち、これらの(必須)パラメータで、/processinvite要求を呼び出す:

  • printerid = -既知のプリンタID
  • accept = true

後プリンタは/search

に表示されます

ハッピープリント!

+2

これは機能し、あなたの答えはウェブ上で「文書化された」唯一の場所です。 –

+1

確認できます - これは完全に機能します! 1)クラウドプリントダッシュボードから、プリンタをサービスアカウントと共有します。 2)サービスアカウントを「/ processinvite」にする - プリンタIDを取得する最も簡単な方法は、ダッシュボードページ(https://www.google.com/cloudprint#printers/ )のURLからコピーすることです') – Wolfgang

+2

このコマンドは、プロセスのサンプルコードを含むライブラリにhttps://github.com/io7/GoogleCloudPrint – mstrange

関連する問題