アプリケーションで Google Data API for .Net(バージョン 1.9) を使用しています。Google アプリ アカウントを作成し、Google ドキュメントで [ユーザーはこの組織外でドキュメントを共有できない] 設定を設定しました。
Google ドキュメント Web からドメイン (組織) 外でファイルを共有しようとすると、ドメイン外ではファイルを共有できないというエラーが表示されます。
しかし、API から同じことを試みると、成功します。API から 200 の成功を取得します。共有リンクからファイルにアクセスしようとすると、「このリソースにアクセスするには権限が必要です」と表示されます。私の質問は、API がエラーを返すべきではないということです。どうすればこのケースを処理できますか?
私が使用しているコードは次のとおりです。
DocumentsRequest request = null;
/* request initialization */
string csBatchReqBody = "<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:batch="http://schemas.google.com/gdata/batch"><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/><entry><id>https://docs.google.com/feeds/default/private/full/document:1DsELtiNwq-ogOrp8cAONdMpGR4gBF79PjijTae-vVNg/acl/user:myusername@mydomain.com</id><batch:operation type="query"/></entry><entry><batch:id>1</batch:id><batch:operation type="insert"/><gAcl:role value="reader"/><gAcl:scope type="user" value="myusername@gmail.com"/></entry>"
string Url = "https://docs.google.com/feeds/default/private/full/document:1DsELtiNwq-ogOrp8cAONdMpGR4gBF79PjijTae-vVNg/acl/batch";
byte[] byteArray = Encoding.ASCII.GetBytes(csBatchReqBody);
MemoryStream inputStream = new MemoryStream(byteArray);
AtomEntry reply = request.Service.Insert(new Uri(Url), inputStream, "application/atom+xml", "");
MemoryStream stream = new MemoryStream();
reply.SaveToXml(stream);