我们正在开发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());
}
这是我为下载文件而生成的网址。
任何猜测,为什么我们无法下载PDF,但电子表格格式有效?
答案 0 :(得分:1)
我认为您在授权令牌时没有请求正确的范围。您应该请求令牌的范围是:
https://docs.google.com/feeds/
https://spreadsheets.google.com/feeds/
https://docs.googleusercontent.com/
您刚刚让我意识到我们文档的“授权”部分引入了一个错误,删除了docs.googleusercontent.com范围。我会补充一下。