2012-09-24 10 views
5

Google Apps管理者がファイルの所有権を再割り当てできるようにするアプリを開発しています。現在、C#コードでGoogle Drive SDK for .NETを使用しています。GoogleドライブSDKの更新(削除/挿入)所有者権限500 Try Itデモのエラー

https://developers.google.com/drive/v2/reference/permissions/insertのGoogleドライブSDKテストデモで認証し、Adminに属するファイルのFileIdを記入し、同じGoogle Appsドメインから別のオーナーを追加しようとすると、500の内部サーバーエラーが発生します。私は、これらの値を使用しています:

POST  https://www.googleapis.com/drive/v2/files/0B1Y4_hVm0vbESlZuZHhBemtjcXM/permissions?key={YOUR_API_KEY} 

Content-Type: application/json 
Authorization: Bearer {MY_ACCESSTOKEN} 
X-JavaScript-User-Agent: Google APIs Explorer 

{ 
"role": "owner", 
"type": "user", 
"value": "[email protected]" 
} 

は "それを試してみてください" デモは、この操作を行うには、スコープ

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file

    で私を設定します。

は、私はそれはデモと同じ管理者ユーザとして認証してください使用して、ファイルのパーミッションのリストを取得することができるが、私は、削除所有者権限を挿入することができません。

GoogleドライブSDKが新しく、Google Docs APIが廃止されただけなので、私はそれを選んだが、私は所有権を更新するための最良のツールを使いたいと思うだろう。私はその目標への最も真っすぐな道を探しています。

誰でもオーナーシップアップデートが機能していますか?もしそうなら、どんなツールを使いましたか?

答えて

1

Googleのエンジニアが調査するための内部バグを報告しましたが、同じドメインのユーザーではなく、外部のドメインからユーザーと共有しようとすると問題が再現されました。

Google Appsドメイン管理者は、ユーザーの所有者を外部ユーザーに変更できないようにすることができます。その場合、APIは500を返してはならず、わかりやすいエラーメッセージが表示されます。

私の調査からすぐにこの回答が更新されます。

+0

私は所有権を渡そうとしている他のユーザーが同じGoogle Appsドメイン内にいることを明確にしています。 私はそれを転送しようとしている 'owner'shipなのではないかと思っていました。私が文書の「所有者」ではなく、ドメインの管理者であれば、これを行うことができますか? Google Docs APIでは、私は 'owner'を偽装する必要があります。 Googleドライブのドキュメントは、これがドメイン管理者にとって可能であることを暗示しているようです。 –

+0

このエラーは、APIがファイルの唯一の所有者を削除しようとしていて、新しい所有者を作成しようとしているために発生しているようです。回避策として、1)書類として他のユーザーと文書を共有し、次に2)他のユーザーを所有者として設定する場合、エラーがまだ発生するかどうかを確認できますか? –

+0

すでに「ライター」だったユーザーにロール「所有者」を追加すると、エラー500が表示されていました。それは作家だった第2の所有者を追加していたときのことでした。私はまた、新しい所有者を追加する準備として唯一の所有者を削除しようとしたときにそれを持っていました。 ウェブデモ「試してみよう」ページで、権限の更新を '{" role ":" owner "}'と一緒に使うと、これはすでにライターのユーザーになっています。エラー500。同じ結果でパッチも試しました。 このプロセスは他の人にも有効ですか?私のドメイン上で設定することができますか? –

0

transferOwnershipフラグを使用して私の問題を解決しました。

のpython APIクライアントでは、あなたが行うことができます:

service.permissions().patch(
     fileId=doc.drive_id, permissionId=permission_id, 
     body=patched_permission, transferOwnership=True).execute() 
0

私は数ヶ月前に同じ問題に会いました。そして、私は昨日それをやり直しました。それは今働いているようです。 Googleのエンジニアがすでに問題を解決しているようです。

あなたもあなたのために働くことを願っています。

関連する問題