Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在.NET中发布Google文档?_.net_Google Docs_Google Docs Api - Fatal编程技术网

如何在.NET中发布Google文档?

如何在.NET中发布Google文档?,.net,google-docs,google-docs-api,.net,Google Docs,Google Docs Api,我正在使用.NET库与Google文档集成。它运行得很好,但我不知道如何使用它进行基于链接的web访问 这背后的基本思想是能够将文档上传到Google文档,并且能够在web环境(Google之外)中查看该文档,而无需使用Google凭据登录。据我所知,最好的方法是通过一个秘密链接发布,如上面链接的帮助文章所述 那么,有人知道如何在.NET中以编程方式发布谷歌文档吗 编辑 作为参考点,并作为更改文档上的ACL(即公开)和发布文档本身(如上面的链接所述)之间区别的说明,以下是Google Docs上

我正在使用.NET库与Google文档集成。它运行得很好,但我不知道如何使用它进行基于链接的web访问

这背后的基本思想是能够将文档上传到Google文档,并且能够在web环境(Google之外)中查看该文档,而无需使用Google凭据登录。据我所知,最好的方法是通过一个秘密链接发布,如上面链接的帮助文章所述

那么,有人知道如何在.NET中以编程方式发布谷歌文档吗

编辑 作为参考点,并作为更改文档上的ACL(即公开)和发布文档本身(如上面的链接所述)之间区别的说明,以下是Google Docs上相同文档的相应版本:

  • ACL公共读访问|
  • 发布到网络上|

您的问题已经得到了回答,其中包含一个Java代码片段。 对于.NET,您应该能够执行以下操作:

AclEntry aclEntry = new AclEntry();
aclEntry.Role = new AclRole("reader");
aclEntry.Scope = new AclScope(AclScope.SCOPE_DEFAULT);

// documentEntry is the document that you want to publish and service is an 
// authorized DocumentsService object.
AclEntry insertedEntry = service.Insert(
    new Uri(documentEntry.AccessControlList), aclEntry);

我刚刚更新了.NET客户端库,现在您可以使用以下代码发布修订版(它假定
entry
是您要发布的DocumentEntry实例):


发布(至少在谷歌看来)和控制文档ACL似乎是两件完全不同的事情,尽管它们是相关的。修改ACL允许我授予对任何Google帐户的r/w访问权,但“发布”允许我呈现文档的web版本,并提供一个公共链接,我可以共享。一旦与默认范围共享(包括匿名访问),您可以使用文档的备用链接,使用
documentEntry.AlternateUri
在web浏览器上查看文档。在XML负载中,备用链接如下所示:
。是的,我知道。你还在谈论谷歌文档的ACL组件,但我在问它的发布组件。我知道我可以访问公共文档,或者使用链接访问我已获得ACL读取权限的文档,但这与发布Google Docs文档,并将其视为在web上发布的文档,而不是Google Docs文档完全不同。自己试一试——发布的文档的功能非常类似于网页,而Google Docs文档看起来像是在用MS Word或其他什么工具查看文档。很抱歉造成混淆,您可以通过编辑文档的修订版来发布文档,如前所述。在.NET中,这意味着检索修订条目、添加/更新文档:发布属性并发送此条目的更新请求。非常感谢您抽出相关文档。非常感谢。:)+非常感谢您继续为图书馆工作。感谢您发布此更新。:)
RevisionQuery revisionQuery = new RevisionQuery(entry.RevisionDocument);
RevisionFeed revisions = service.Query(revisionQuery);

// TODO: choose the revision you want to publish, this sample selects the first one
RevisionEntry revision = (RevisionEntry)revisions.Entries[0];

revision.Publish = true;
revision.PublishAuto = true;

revision.Update();