Search in sources :

Example 1 with GoogleHeaders

use of com.google.api.client.googleapis.GoogleHeaders in project AndroidSDK-RecipeBook by gabu.

the class Recipe098 method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    // GoogleTransportを作る
    mTransport = GoogleTransport.create();
    GoogleHeaders headers = (GoogleHeaders) mTransport.defaultHeaders;
    // "[company-id]-[app-name]-[app-version]"という形式で
    // アプリケーション名をセット
    headers.setApplicationName("gabu-recipe-98");
    // バージョンをセット
    headers.gdataVersion = "3";
    // AtomParserを作る
    AtomParser parser = new AtomParser();
    // GoogleDocumentsListのネームスペースをセット
    parser.namespaceDictionary = Namespace.DICTIONARY;
    // GoogleTransportにAtomParserをセット
    mTransport.addParser(parser);
    // HttpTransportにApacheHttpTransportのインスタンスをセット
    // これをやっておかないとExceptionが発生します。
    HttpTransport.setLowLevelHttpTransport(ApacheHttpTransport.INSTANCE);
    // AccountManagerを取得
    AccountManager manager = AccountManager.get(this);
    // Googleアカウントの一覧を取得
    Account[] accounts = manager.getAccountsByType("com.google");
    // サンプルなので暫定的に1つ目を取得
    Account acount = accounts[0];
    // 認証のためのauth tokenを取得
    AccountManagerFuture<Bundle> f = manager.getAuthToken(acount, DOCS_AUTH_TOKEN_TYPE, null, this, null, null);
    try {
        Bundle b = f.getResult();
        mAuthToken = b.getString(AccountManager.KEY_AUTHTOKEN);
    //            Log.d(TAG, "authToken=" + mAuthToken);
    } catch (OperationCanceledException e) {
        e.printStackTrace();
    } catch (AuthenticatorException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    // GoogleTransportにauth tokenをセット
    // これで認証ヘッダを自動的に付けてくれます。
    ((GoogleHeaders) mTransport.defaultHeaders).setGoogleLogin(mAuthToken);
    // Googleドキュメントの一覧を取得するURLを作成
    String url = GOOGLE_DOCS_API_URL + "default/private/full/-/document";
    // GoogleTransportからGETリクエストを生成
    HttpRequest request = mTransport.buildGetRequest();
    // URLをセット
    request.setUrl(url);
    try {
        // HTTPリクエストを実行してレスポンスをパース
        DocumentListFeed feed = request.execute().parseAs(DocumentListFeed.class);
        // DocsAdapterを生成
        DocsAdapter adapter = new DocsAdapter(getApplicationContext(), 0, feed.entries);
        // ListViewにDocsAdapterをセット
        ListView listView = (ListView) findViewById(R.id.list_view);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(mOnItemClickListener);
    } catch (IOException e) {
        handleException(e);
    }
}
Also used : HttpRequest(com.google.api.client.http.HttpRequest) Account(android.accounts.Account) GoogleHeaders(com.google.api.client.googleapis.GoogleHeaders) Bundle(android.os.Bundle) OperationCanceledException(android.accounts.OperationCanceledException) AuthenticatorException(android.accounts.AuthenticatorException) IOException(java.io.IOException) AtomParser(com.google.api.client.xml.atom.AtomParser) ListView(android.widget.ListView) AccountManager(android.accounts.AccountManager)

Example 2 with GoogleHeaders

use of com.google.api.client.googleapis.GoogleHeaders in project AndroidSDK-RecipeBook by gabu.

the class Recipe101 method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mTransport = GoogleTransport.create();
    GoogleHeaders headers = (GoogleHeaders) mTransport.defaultHeaders;
    // "[company-id]-[app-name]-[app-version]"という形式で
    // アプリケーション名をセット
    headers.setApplicationName("gabu-recipe-101");
    // バージョンをセット
    headers.gdataVersion = "2";
    // AtomParserを作る
    AtomParser parser = new AtomParser();
    // GoogleCalendarのネームスペースをセット
    parser.namespaceDictionary = Namespace.DICTIONARY;
    // GoogleTransportにAtomParserをセット
    mTransport.addParser(parser);
    // HttpTransportにApacheHttpTransportのインスタンスをセット
    // これをやっておかないとExceptionが発生します。
    HttpTransport.setLowLevelHttpTransport(ApacheHttpTransport.INSTANCE);
    // AccountManagerを取得
    AccountManager manager = AccountManager.get(this);
    // Googleアカウントの一覧を取得
    Account[] accounts = manager.getAccountsByType("com.google");
    // サンプルなので暫定的に1つ目を取得
    Account acount = accounts[0];
    // 認証のためのauth tokenを取得
    AccountManagerFuture<Bundle> f = manager.getAuthToken(acount, CAL_AUTH_TOKEN_TYPE, null, this, null, null);
    try {
        Bundle b = f.getResult();
        mAuthToken = b.getString(AccountManager.KEY_AUTHTOKEN);
    //            Log.d(TAG, "authToken=" + mAuthToken);
    } catch (OperationCanceledException e) {
        e.printStackTrace();
    } catch (AuthenticatorException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    // GoogleTransportにauth tokenをセット
    // これで認証ヘッダを自動的に付けてくれます。
    ((GoogleHeaders) mTransport.defaultHeaders).setGoogleLogin(mAuthToken);
    // GoogleTransportからGETリクエストを生成
    HttpRequest request = mTransport.buildGetRequest();
    // Googleカレンダーの一覧を取得するURLを作成
    // 共有しているカレンダーも含む
    //        String url = GOOGLE_CAL_API_URL + "default/allcalendars/full";
    // 自分がオーナーのカレンダーのみ
    String url = GOOGLE_CAL_API_URL + "default/owncalendars/full";
    // URLをセット
    request.setUrl(url);
    try {
        // HTTPリクエストを実行してレスポンスをパース
        CalendarFeed feed = request.execute().parseAs(CalendarFeed.class);
        for (CalendarEntry entry : feed.entries) {
            Log.d(TAG, entry.title + ", " + entry.id);
        }
        // サンプルのためカレンダーの1つ目を取得
        CalendarEntry entry = feed.entries.get(0);
        // このuserIDがカレンダーを一意に特定するIDになります。
        String userID = entry.getUserID();
        // 何も指定せずに予定の一覧を取得
        url = GOOGLE_CAL_API_URL + userID + "/private/full";
        debug(request, url);
    // 2010年6月の予定の一覧を取得
    //            url = createMonthlyUrl(userID, 2010, 6);
    //            debug(request, url);
    // 2010年6月30日の予定の一覧
    //            url = createDailyUrl(userID, 2010, 6, 30);
    //            debug(request, url);
    } catch (IOException e) {
        handleException(e);
    }
}
Also used : HttpRequest(com.google.api.client.http.HttpRequest) Account(android.accounts.Account) GoogleHeaders(com.google.api.client.googleapis.GoogleHeaders) Bundle(android.os.Bundle) OperationCanceledException(android.accounts.OperationCanceledException) AuthenticatorException(android.accounts.AuthenticatorException) IOException(java.io.IOException) AtomParser(com.google.api.client.xml.atom.AtomParser) AccountManager(android.accounts.AccountManager)

Aggregations

Account (android.accounts.Account)2 AccountManager (android.accounts.AccountManager)2 AuthenticatorException (android.accounts.AuthenticatorException)2 OperationCanceledException (android.accounts.OperationCanceledException)2 Bundle (android.os.Bundle)2 GoogleHeaders (com.google.api.client.googleapis.GoogleHeaders)2 HttpRequest (com.google.api.client.http.HttpRequest)2 AtomParser (com.google.api.client.xml.atom.AtomParser)2 IOException (java.io.IOException)2 ListView (android.widget.ListView)1