import com.google.api.client.googleapis.*
import com.google.api.client.googleapis.auth.clientlogin.*
import com.google.api.data.spreadsheet.v3.*
import com.google.api.data.spreadsheet.v3.atom.*
import com.google.api.client.xml.atom.*
import com.google.api.client.util.*
// エントリ
public class Entry
{
@Key("@gd:etag")
String etag
@Key
String title
@Key
String id
@Key
List<Link> link
}
// リンク
public class Link
{
@Key("@rel")
String rel
@Key("@type")
String type
@Key("@href")
String href
}
// フィード
public class Feed
{
@Key
String title
@Key
List<Entry> entry
}
// Parser設定
GoogleTransport transport = new GoogleTransport()
transport.applicationName = "yourcorp-yourapp-1.0"
transport.setVersionHeader(GoogleSpreadsheets.VERSION)
ap = new AtomParser()
ap.namespaceDictionary = GoogleSpreadsheetsAtom.NAMESPACE_DICTIONARY
transport.addParser(ap)
// 認証
cl = new ClientLogin()
cl.authTokenType = GoogleSpreadsheets.AUTH_TOKEN_TYPE
cl.username = "youraccount@gmail.com"
cl.password = 'yourpassword'
cl.authenticate().setAuthorizationHeader(transport)
// 指定したスプレッドシートの指定した名前のシートを削除
// keyはブラウザでスプレッドシートを表示した時と同じ
key = "0Aqfa4uztHBXEdDNEc1duOUdDQmd4eURRekdxxxxxxxx"
worksheet = "リネームしたシート"
requrl = "https://spreadsheets.google.com/feeds/worksheets/${key}/private/full"
request = transport.buildGetRequest()
request.url = requrl
feed = request.execute().parseAs(Feed.class)
println feed.title
println "----"
for( entry in feed.entry ){
if( entry.title == worksheet ){
// 削除リクエスト
request = transport.buildDeleteRequest()
for( lk in entry.link ){
if( lk.rel == "edit" ){
request.url = lk.href
}
}
request.headers.put("If-Match", entry.etag)
request.execute().parseAsString()
}
}
動作環境
groovy 1.7.2, JDK6 Update20, gdata-java-2.2.1-alpha
関連情報
gdata-java-client
http://code.google.com/p/gdata-java-client/
0 件のコメント:
コメントを投稿