【发布时间】:2011-12-16 12:37:15
【问题描述】:
我们正在开发一个 Android 应用程序来从 Google Doc 下载文件。我们能够使用 Google Docs List API 列出文件。我们还能够从谷歌文档下载电子表格文件。但是当我们尝试从谷歌文档下载 pdf 文件时,它总是返回 401 错误。这是我们用来下载文件的代码。
CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(C.OAuth.CONSUMER_KEY, C.OAuth.CONSUMER_SECRET);
consumer.setMessageSigner(new HmacSha1MessageSigner());
consumer.setTokenWithSecret(token, secret);
.........
String url1 = consumer.sign(obj.url+"&exportFormat=txt"); // Create complete url
get.setURI(URI.create(url1));
response = client.execute(get);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
Log.v("GDATA MAIN", "not error");
}
else
{
Log.v("GDATA MAIN", "error"+response.getStatusLine().getStatusCode());
}
这是我生成的用于下载文件的 URL。
猜猜看,为什么我们无法下载 PDF,但电子表格格式可以使用?
【问题讨论】:
-
您的代码 sn-p 仍然没有显示您设置范围的位置。
-
您不能将 PDF 导出为文本。即使使用 exportFormat=txt,您仍然可以获得 PDF 内容。至于您的错误,您可能在 OAuth 令牌中缺少“文档”或“PDF/文件下载”范围;这些与访问电子表格所需的“电子表格”范围不同。
标签: java android google-docs-api google-data