从谷歌服务器验证谷歌文档后,我做了一个简单的getResponse,但我收到了400 Bad Request.我无法理解我哪里出错了.示例代码如下
private void executeRefreshAlbums() {
HttpRequest request = transport.buildGetRequest();
request.url = GoogleDocsUrl.forDefaultPrivateFull();
System.out.println("URL = "+request.url);
try {
HttpResponse response = request.execute();
System.out.println("Response = "+response.getContent());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
sysout打印正确的URL作为
03-12 17:36:59.573: INFO/System.out(451): URL = https://docs.google.com/feeds/default/private/full
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我明白了
03-12 17:43:41.360: WARN/System.err(3958): com.google.api.client.http.HttpResponseException: 400 Bad Request
03-12 17:43:41.415: WARN/System.err(3958): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:209)
03-12 17:43:41.415: WARN/System.err(3958): at com.example.Test.executeRefreshAlbums(Test.java:198)
03-12 17:43:41.415: WARN/System.err(3958): at com.example.Test.authenticated(Test.java:190)
03-12 17:43:41.415: WARN/System.err(3958): at com.example.Test.authenticatedClientLogin(Test.java:156)
03-12 17:43:41.415: WARN/System.err(3958): at com.example.Test.access$1(Test.java:153)
03-12 …Run Code Online (Sandbox Code Playgroud) java android httpresponse google-docs google-api-java-client
我正在使用gdata-spreadsheet-3.0jar在Google电子表格中输入数据.
我在用
(new ListEntry()).getCustomElements().setValueLocal("Header Name", "Value");
Run Code Online (Sandbox Code Playgroud)
但我不想手动创建标题.
我无法使用Java输入/创建电子表格的标题.我也无法使用电子表格的标题输入数据(意味着AB C ...).
我可以创建标题,还是可以使用电子表格的标题(表示AB C ...)?
我正在努力掌握使用Google Docs/Google Drive的长期数据存储的可靠性.据推测,当文件上传或自动同步时,使用md5sum验证传输 - 我发现根据Google Docs API将这些传输保存为元信息.由于文件镜像到多个服务器,因此可能还会验证这些传输中的每一个.
但那时文件就在那里待了好几年.我不会改变它,因此不会触发任何同步.谷歌是否偶尔验证的md5sum并没有改变,以防止文件的无声的腐败 - 和修复文件如果发现不一致?或者,md5sum元信息只是一个静态值,表示文件在多年前首次上传时的样子?
今天尝试了这个实验:为Google文档打开了两个离线编辑器.在其中一个,我加粗了第一个字.在第二个,我删除了它.无论我先打开哪个客户端,该字总是会被删除.
首先,为什么会这样 - 我对运营转型的理解是订购问题?在两个人分别输入"a"和"b"的简单例子中,如果服务器首先接收"a",它将通过将第二个人的"b"事件转换为"通过一个空格"来强制执行"ab"的输出. ,然后添加b"事件,反之亦然.
其次,如果排序无关紧要,是否存在技术原因导致Google Docs选择在删除方面犯错?或者用户的原因很简单?
real-time google-docs google-wave operational-transform google-drive-api
在GoogleDrive中编辑文档后,似乎LastModified值有时不会立即更改.看起来价值将在几分钟内更新.
我试图通过DriveSDK获取文档的Etag,它也发生在Etag值上.
这种奇怪的行为使我无法实时获取文档状态(已修改或未修改).任何建议将受到高度赞赏.
[示例请求和响应]请求只是GoogleDrive ListFiles:https://www.googleapis.com/drive/v2/files
这是响应JSON的一部分,您可以看到ModifiedDate早于ModifiedByMeDate.
{
"kind": "drive#fileList",
"etag": "\"3NNCnvnQuji-pODa6SMQ6atlc3M/oKnf21kAcJKTCIycS597xCSR2bk\"",
"selfLink": "https://www.googleapis.com/drive/v2/files",
"items": [
{
"kind": "drive#file",
"id": "1lZjcJIf3Chuu5upFqtiqfTRnRw7*****rFL_tlO8A",
"etag": "\"3NNCnvnQuji-pODa6SMQ6atlc3M/MTM1NDY5MzMyMzQ1Mg\"",
"selfLink": "https://www.googleapis.com/drive/v2/files/1lZjcJIf3Chuu5upFqtiqfTRnRw7wSUjbRurFL_tlO8A",
"alternateLink": "https://docs.google.com/a/*****.com/document/d/1lZjcJIf3Chuu5upFqtiqfTRnRw7wSUjbRurFL_tlO8A/edit",
"embedLink": "https://docs.google.com/a/*****.com/document/d/1lZjcJIf3Chuu5upFqtiqfTRnRw7wSUjbRurFL_tlO8A/preview",
"iconLink": "https://ssl.gstatic.com/docs/doclist/images/icon_11_document_list.png",
"thumbnailLink": "https://docs.google.com/feeds/vt?gd=true&id=1lZjcJIf3Chuu5upFqtiq*****7wSUjbRurFL_tlO8A&v=22&s=AMedNnoAAAAAU*****UK74n3UiIg0L4TY-NwP3EaAU&sz=s220",
"title": "TestFile",
"mimeType": "application/vnd.google-apps.document",
"labels": {
"starred": false,
"hidden": false,
"trashed": false,
"restricted": false,
"viewed": true
},
"createdDate": "2012-07-24T08:14:13.918Z",
"modifiedDate": "2012-12-06T01:49:57.982Z",
"modifiedByMeDate": "2012-12-06T01:49:57.982Z",
"lastViewedByMeDate": "2012-12-06T01:50:06.974Z",
"parents": [
{
"kind": "drive#parentReference",
"id": "0AJ-aGTt-gWksUk9PVA",
"selfLink": "https://www.googleapis.com/drive/v2/files/1lZjcJIf3Chuu5upFqtiqfTRnRw7wSUjbRurFL_tlO8A/parents/0AJ-aGTt-gWksUk9PVA",
"parentLink": "https://www.googleapis.com/drive/v2/files/0AJ-aGTt-gWksUk9PVA",
"isRoot": true
}
],
"exportLinks": {
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": "https://docs.google.com/feeds/download/documents/export/Export?id=1l*****huu5upFqtiqfTRnRw7wSUjbRurFL_tlO8A&exportFormat=docx",
"application/vnd.oasis.opendocument.text": …Run Code Online (Sandbox Code Playgroud) 我已经在互联网的远端搜索了几天,但似乎无法找到我的问题的解决方案.我对编程知识有限,但是如果我能让它工作,它就会做很棒的事情.
解释:我需要使用电子表格A中的脚本制作模板电子表格的副本,并将模板的所有权限复制到副本中(特别是名称和受保护的范围).我正在使用SheetSpider.
截至目前,我可以创建模板的副本,但SheetSpider似乎删除了模板具有的权限,并使用您在设置过程中定义的用户重写它们.相反,我只想复制模板文件的权限.这似乎很棘手,因为电子表格的常规副本仍然没有带来名称和受保护范围设置的权限,就像你去文件>复制电子表格并选中"并与同一用户共享"的框一样"它保留了受保护的范围设置.
同样,我对编程知识非常有限,但我认为我已经找到了似乎丢失并重置权限的行.我已经尝试使用以下几天来让它单独留下权限,但无济于事.
任何帮助或指导将不胜感激!
谢谢!
function checkFixFileACLs(file, approvedViewers, approvedEditors) {
var viewers = file.getViewers().join(",");
viewers = viewers.split(",");
var editors = file.getEditors().join(",");
editors = editors.split(",");
viewers = arr_diff(editors, viewers);
var owner = file.getOwner().toString();
var fileKey = file.getId();
var driveFile = DriveApp.getFileById(fileKey);
var currViewers = [];
for (var k=0; k<viewers.length; k++) {
if ((viewers[k]!='')&&(approvedViewers.indexOf(viewers[k].toLowerCase())==-1)&&(approvedEditors.indexOf(viewers[k].toLowerCase())==-1)&&(viewers[k]!=owner)) {
try {
call(function() {driveFile.removeViewer(viewers[k].toLowerCase());});
} catch(err) {
Logger.log(err.message);
}
} else {
currViewers.push(viewers[k].toLowerCase());
}
}
for (var k=0; k<approvedViewers.length; k++) {
if ((approvedViewers[k]!='')&&(approvedViewers[k])) {
if (currViewers.indexOf(approvedViewers[k])==-1) …Run Code Online (Sandbox Code Playgroud) 如果A列为空,我正试图隐藏行.我想将它应用于特定工作表(第1周,第2周,第3周,第4周和第5周).这是我到目前为止第一周的代码.
function ConditionalHideRow() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Week1");
var condition = sheet.getRange("A:A").getValue();
if (condition = "EMPTY") {
sheet.hideRows(1,125)
}
Run Code Online (Sandbox Code Playgroud)
编辑:奖金问题,当A列填满时,有什么方法可以让它取消隐藏?我正在使用=查询公式来填充我的电子表格,并且随着更多数据的添加,长度将需要更改.
我正在使用android的存储访问框架(SAF)与文档进行交互。我已经能够找到/读取/写入文档,没有任何麻烦,但是当我尝试对Google Drive文档使用DocumentsContract#renameDocument()重命名时遇到了问题。我发布的代码与内部存储中的文件配合正常。
为了使事情变得容易,我制作了一个示例应用程序并将其推送到github。您可以在以下位置找到该代码:https : //github.com/scottTomaszewski/SafExample,我与文档本身的交互都在此类https://github.com/scottTomaszewski/SafExample/blob/master/app/src/main中/java/com/example/safexample/SafDocument.java
重命名通过Google Drive的SAF界面获取的Uri时出现的错误是这样的(更易于阅读的版本:https : //github.com/scottTomaszewski/SafExample/blob/master/README.md)
03-03 14:10:41.529 29069-29069/com.example.safexample W/grok: java.io.FileNotFoundException
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:144)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:692)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1103)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
at com.example.safexample.SafDocument$2.openStream(SafDocument.java:66)
at com.google.common.io.ByteSource$AsCharSource.openStream(ByteSource.java:420)
at com.google.common.io.CharSource.read(CharSource.java:147)
at com.example.safexample.SafDocument.read(SafDocument.java:73)
at com.example.safexample.MainActivity.onOptionsItemSelected(MainActivity.java:61)
at android.app.Activity.onMenuItemSelected(Activity.java:2912)
at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:404)
at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:167)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
at android.support.v7.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:69)
at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:169)
at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:760)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:948)
at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:618)
at android.support.v7.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
at android.view.View.performClick(View.java:5201)
at android.view.View$PerformClick.run(View.java:21163)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at …Run Code Online (Sandbox Code Playgroud) 我试图从此处复制带有公式的富文本格式,但是它不起作用。Google文档说“无法创建一些图像”,而Word 2016只字不提。我的操作系统是Windows10。我尝试了不同的浏览器(Chrome,Opera,Edge)。
google-docs ×10
android ×2
java ×2
clipboard ×1
google-wave ×1
httpresponse ×1
ms-word ×1
permissions ×1
real-time ×1
svg ×1