Я использую Google Data API для .Net(версия 1.9) в своем приложении. Я создал учетную запись приложений Google и установил параметр «Пользователи не могут обмениваться документами за пределами этой организации» в Документах Google.
Когда я пытаюсь поделиться файлом за пределами домена (организации) из Интернета документов Google, я получаю сообщение об ошибке, говорящее, что файл не может быть опубликован за пределами моего домена.
Но когда я пытаюсь сделать то же самое из API, мне это удается. Я получаю 200 успехов от API. Когда я пытаюсь получить доступ к файлу по ссылке общего доступа, он говорит: «Вам нужно разрешение для доступа к этому ресурсу». Мой вопрос: не должен ли 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:[email protected]</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="[email protected]"/></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);