Ich verwende Google Data API für .Net (Version 1.9) in meiner Anwendung. Ich habe ein Google Apps-Konto erstellt und unter Google Text & Tabellen die Einstellung "Nutzer können keine Dokumente außerhalb dieser Organisation freigeben" festgelegt.Google Daten-API für .Net ermöglicht das Teilen außerhalb der Organisation in Google Apps-Konto
Wenn ich versuche, eine Datei außerhalb der Domain (Organisation) von Google Docs Web zu teilen, erhalte ich eine Fehlermeldung, dass die Datei nicht außerhalb meiner Domain freigegeben werden kann.
Aber wenn ich das gleiche von der API versuchen, ist es erfolgreich. Ich bekomme einen 200 Erfolg von der API. Wenn ich versuche, über den Freigabe-Link auf die Datei zuzugreifen, wird "Sie benötigen die Berechtigung zum Zugriff auf diese Ressource" angezeigt. Meine Frage sollte nicht die API mit einem Fehler zurückgeben? Wie kann ich mit diesem Fall umgehen?
Hier ist der Code, den ich verwende:
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);
Ihnen danken. Also sollte ich nicht Batch-Anfragen für einzelne Elemente verwenden? nur eine Klarstellung. –
Es gibt keine Notwendigkeit, Stapel für eine einzelne Anfrage zu verwenden, es fügt tatsächlich etwas Overhead hinzu. –