« 2013年10月 | トップページ | 2013年12月 »

2013.11.04

dropboxのAPI(android)を使ってみた(3)

ようやく、Dropboxが使える準備が整いました。

あとは、チュートリアルほぼそのままです。

まず、定数の宣言。


inal static private String APP_KEY = "INSERT_APP_KEY";
final static private String APP_SECRET = "INSERT_APP_SECRET";
final static private AccessType ACCESS_TYPE = AccessType.INSERT_APP_ACCESS_TYPE;

INSERT_APP_KEY、INSERT_APP_SECRETには、それぞれ、取得したApp KeyとApp Secretを入れる。
INSERT_APP_ACCESS_TYPEには、APP_FOLDERを入れました。

宣言した3つの定数をDropboxAPIのオブジェクトに渡してやり、認証を開始させます。

private DropboxAPI mDBApi;

AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET);

AndroidAuthSession session = new AndroidAuthSession(appKeys, ACCESS_TYPE);

mDBApi = new DropboxAPI(session);

mDBApi.getSession().startAuthentication(DBSend.this);

ここを通るとき、アプリ上では、Dropbox認証用のサイトに飛びます。

また、認証を終了するために、onResumeに以下のルーチンが必要。

protected void onResume() {

 super.onResume();

 if (mDBApi.getSession().authenticationSuccessful()) {
  try {
   // Required to complete auth, sets the access token on the session
   mDBApi.getSession().finishAuthentication();

   AccessTokenPair tokens = mDBApi.getSession().getAccessTokenPair();
  } catch (IllegalStateException e) {
   Log.i("DbAuthLog", "Error authenticating", e);
  }
 }
}

ファイルをアップロードするには以下の様な感じ。

 File file = new File("working-draft.txt");  FileInputStream inputStream = new FileInputStream(file);  Entry response = mDBApi.putFile("/magnum-opus.txt", inputStream,file.length(), null, null);

「working-draft.txt」はandroid内にあるファイル名。
「/magnum-opus.txt」は、dropboxの保存先。
ここで、保存されるのはアプリフォルダの下の登録したアプリ名の下にできます。
ここにできるという事に気づかず、結構はまりました。

意外にあっけないけど、保存先フォルダが見つからず結構苦労しました。


| トラックバック (0)

2013.11.01

dropboxのAPI(android)を使ってみた(2)

SDKのダウンロード
まず、開発者用サイトから、SDKをダウンロードします。右側のDrop-ins, Datastore API, Sync API, Core APIの中から選んで、Install SDKからダウンロードできます。
試してみたのは主にCore APIなので、Core APIベースの説明になりますが、大体どれも同じ感じだと思います。

libをコピー
zipファイルを展開すると中にlibフォルダがあります。
androidのプロジェクトのlibフォルダにlibフォルダの中にあるファイルをコピーします。見えているjarファイルだけでいいですが、面倒なのでまるまるコピーしました。

アプリケーションの登録
続いて、自分のアプリケーションがdropboxを使えるように登録します。
開発者用サイトから、App Consoleを選んでCreate appを選択。
まず、Drop-ins appかDropbox API appを選ぶ。今回は、Dropbox APIを選んで、
今回一通りのことを試したかったので、「Files and Datastores」「No - My app needs access to files already on Dropbox」「All file types」を選択して、アプリ名を入力して適当に進むと、App keyとApp secretが発行されます。

AndroidManifest.xmlへの追加
こちらに従って、Dropboxが、認証できるように、以下の部分を追加します。

<activity android:name="com.dropbox.client2.android.AuthActivity" android:launchMode="singleTask" android:configChanges="orientation|keyboard"> <intent-filter> <!-- Change this to be db- followed by your app key --> <data android:scheme="db-INSERT_APP_KEY" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>

ここで、INSERT_APP_KEYには、登録したApp Keyを入れること。
db-INSERT_APP_KEYをApp Keyに置き換えるのではなく、db-を残して、続く「INSERT_APP_KEY」を置き換える。これに結構ハマってしまった。

また、Dropboxはネットを使うので、以下も追加していなかったら追加すること。


<uses-permission android:name="android.permission.INTERNET"></uses-permission>

| トラックバック (0)

« 2013年10月 | トップページ | 2013年12月 »