ページ

2015年1月4日日曜日

GAEと戯れる 14 - gdata -

今回からはGAEとGoogle Appsとの連携をやってみる

以下サイトを参考
http://thinkit.co.jp/story/2013/10/01/4472

とりあえず、GAE側にGoogle Appsと連携する為のライブラリを導入してみる。
gdataというものがいるらしい。
↓からダウンロード可能
https://code.google.com/p/gdata-java-client/downloads/list

GAE側プロジェクトのWEB-INF/lib配下にjarファイルをコピー
















コピー元はダウンロードしたgdata/java/lib配下のjarと、jsr305.jar
次に、以下6項目をビルドパスに追加

















↓とりあえず、参考サイトを元にサービスクラスを作成してみた
/**
 * GoogleDriveのスプレッドシートサービスクラス
 * @author jf-orange
 */
public class SpreadSheetService {

    private SpreadsheetService spreadsheetService;
    
    /**
     * コンストラクタ
     * 
     * @param appName       アプリケーション名
     */
    public SpreadSheetService(String appName) {
        spreadsheetService = new SpreadsheetService(appName);
    }
    
    /**
     * スプレッドシートの検索
     * 
     * @param sheetName     シート名
     * @return              {@link SpreadsheetEntry}
     * @throws Exception
     */
    public SpreadsheetEntry findSheet(String sheetName) throws Exception {
        if (StringUtil.isEmpty(sheetName)) {
            return null;
        }
        FeedURLFactory factory = FeedURLFactory.getDefault();
        SpreadsheetQuery sheetQuery 
            = new SpreadsheetQuery(factory.getSpreadsheetsFeedUrl());
        sheetQuery.setTitleQuery(sheetName);
        SpreadsheetFeed sheetFeed = spreadsheetService.query(sheetQuery, SpreadsheetFeed.class);
        return sheetFeed.getEntries().get(0);
    }
    
    public WorksheetEntry getWorksheet(SpreadsheetEntry entry) throws Exception {
        if (entry == null) {
            return null;
        }
        return entry.getDefaultWorksheet();
    }
    
    /**
     * ワークシート内の全データを取得
     * 
     * @param workSheetEntry        {@link WorksheetEntry}
     * @return                      {@link ListEntry}のリスト
     * @throws Exception
     */
    public List<ListEntry> getSheetAllData(WorksheetEntry workSheetEntry) throws Exception {
        if (workSheetEntry == null) {
            return null;
        }
        ListQuery listQuery = new ListQuery(workSheetEntry.getListFeedUrl());
        ListFeed listFeed = spreadsheetService.query(listQuery, ListFeed.class);
        return listFeed.getEntries();
    }

}

0 件のコメント:

コメントを投稿