Retrieving a list of spreadsheetsを読みますと,
https://spreadsheets.google.com/feeds/spreadsheets/private/fullに送信すれば,認証されたユーザのspreadsheetsのfeedを入手することができます。
具体的なコードは以下の通りです。
HttpTransporへの署名
String token = "your access token"; String tokenSecret = "your access tokenSecret"; HttpTransport transport = new ApacheHttpTransport(); OAuthParameters parameters = createOAuthParameters(token, tokenSecret); parameters.signRequestsUsingAuthorizationHeader(transport); getSpreadSheets(transport);
createOAuthParameters
public OAuthParameters createOAuthParameters(String token, String tokenSecret) { OAuthParameters authorizer = new OAuthParameters(); authorizer.consumerKey = "anonymous"; authorizer.signer = createOAuthSigner(tokenSecret); authorizer.token = token; return authorizer; }
createOAuthSigner
public OAuthHmacSigner createOAuthSigner(String tokenSecret) { OAuthHmacSigner signer = new OAuthHmacSigner(); if (tokenSecret != null) { signer.tokenSharedSecret = tokenSecret; } signer.clientSharedSecret = "anonymous"; return signer; }
getSpreadSheet
public void getSpreadSheets(HttpTransport transport) { // Set AtomParser AtomParser parser = new AtomParser(); XmlNamespaceDictionary dictionary = new XmlNamespaceDictionary(); dictionary.set("", Atom.ATOM_NAMESPACE); dictionary.set("docs", "http://schemas.google.com/docs/2007"); dictionary.set("batch", "http://schemas.google.com/gdata/batch"); dictionary.set("gd", "http://schemas.google.com/g/2005"); dictionary.set("gd:etag", "W/"DEMCQHk7eSt7ImA9WhZSGUw.""); dictionary.set("openSearch", "http://a9.com/-/spec/opensearch/1.1/"); dictionary.set("app", "http://www.w3.org/2007/app"); parser.namespaceDictionary = dictionary; transport.addParser(parser); // Set Http Headers HttpHeaders headers = transport.defaultHeaders; headers.set("User-Agent", appname); headers.set("GData-Version", "3.0"); HttpRequest request = transport.buildGetRequest(); request.url = new GoogleUrl("https://spreadsheets.google.com/feeds/spreadsheets/private/full"); try { HttpResponse response = request.execute(); // null chekc していないので注意 InputStreamReader inr = new InputStreamReader(response.getEntity().getContent()); BufferedReader reader = new BufferedReader(inr, 256); while ((str = reader.readLine()) != null) { Log.d(TAG, line); } reader.close(); inr.close(); } catch (IOException e) { Log.e(TAG, e.getMessage()); e.printStackTrace(); } }
<?xml version='1.0' encoding='UTF-8'?> <feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/"DEMCQHk7eSt7ImA9WhZSGUw."'> <id>https://spreadsheets.google.com/feeds/spreadsheets/private/full</id> <updated>2011-04-04T11:27:41.701Z</updated> <category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#spreadsheet'/> <title>Available Spreadsheets - Maskes(user's email address)</title> <link rel='alternate' type='text/html' href='http://docs.google.com'/> <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/spreadsheets/private/full'/> <link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/spreadsheets/private/full'/> <openSearch:totalResults>11</openSearch:totalResults> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag='"BBQbQxQLQit7ImBr"'> <id>https://spreadsheets.google.com/feeds/spreadsheets/tRsAk0wSkUi4wCBZxOJITuw</id> <updated>2011-04-04T04:52:59.849Z</updated> <category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#spreadsheet'/> <title>Hack For Japan Projects</title> <content type='application/atom+xml;type=feed' src='https://spreadsheets.google.com/feeds/worksheets/tRsAk0wSkUi4wCBZxOJITuw/private/full'/> <link rel='http://schemas.google.com/spreadsheets/2006#tablesfeed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/tRsAk0wSkUi4wCBZxOJITuw/tables'/> <link rel='alternate' type='text/html' href='https://spreadsheets.google.com/ccc?key=0Amb6cvTCzTQRdFJzQWswd1NrVWk0d0NCWnhPSklUdXc'/> <link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/spreadsheets/private/full/tRsAk0wSkUi4wCBZxOJITuw'/> <author> <name>Masked</name> <email>Masked</email> </author> </entry> </feed>