1

Google Doc からファイルをダウンロードする Android アプリケーションを開発しています。Google Docs List API を使用してファイルを一覧表示できました。また、Google ドキュメントからスプレッドシート ファイルをダウンロードすることもできました。しかし、Google ドキュメントから 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 です。

https://doc-04-0s-docs.googleusercontent.com/docs/securesc/5pv2dhsk6q500b1vl99u2gr2gvpqfifr/d8oihkmccnh39ie9io5bhqaf3jof7t16/1324030500000/01234800628230479895/01234800628230479895/0B4royw-5u0TDNGU3ZjZiZTAtN2ZhNi00YWE3LWEwZGEtMTMwNWJhMGE1YWRk?h=16653014193614665626&e=download&gd=true&exportFormat=txt&oauth_signature=3lfP0reuJhMWstxMKMAlJh%2BZ7Ug%3D&oauth_token= 1%2FQnEPtLXrhT8q6yk8oLoI2ZPyZzQptbB4mQrBJf-HJfM&oauth_consumer_key=418002400742-nrh3mt73pfvl6flshi8f7uvki49ofqj8.apps.googleusercontent.com&oauth_version=1.0&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1324031523&oauth_nonce=351034367494689817

PDF をダウンロードできないのに、スプレッドシート形式が機能するのはなぜでしょうか?

4

1 に答える 1

1

トークンを承認するときに正しいスコープを要求していないと思います。トークンをリクエストする必要があるスコープは次のとおりです。

https://docs.google.com/feeds/
https://spreadsheets.google.com/feeds/
https://docs.googleusercontent.com/

ドキュメントの承認セクションにバグが導入され、docs.googleusercontent.comスコープが削除されたことに気づきました。それを追加します。

于 2011-12-17T09:37:15.137 に答える