【kotlin】DropBoxAPIを使用して一覧を取得

概要

DropBoxAPIを使用して、一覧を取得します。

開発環境

  1. Mac OS 13.2
  2. Android studio 2021.2.1 Patch 2

DropBoxの認証画面を表示して認証します。

binding.buttonSign.setOnClickListener {
    this.context?.let { it1 ->
        // ブラウザで認証画面が開きます。
        Auth.startOAuth2Authentication(it1, {drop_box_app_key})
    }
}
  • 以下の画面が表示されます。そのまま画面に従って進みます。

  • Allow(許可)をタップするとアプリに戻ります。

  • アプリに戻ったらtokenが取れます。他の画面でも使用するならSharedPreferencesに保存しても良いでしょう
override fun onResume() {
    super.onResume()
    // Tokenが取得できます。
    val newToken = Auth.getOAuth2Token().toString()
}
  • 一覧の取得です。
private suspend fun getDropBoxListTask(token: String?) {
    try {
        // tokenがない場合処理をやめます。
        if (token == null) {
            return
        }
        // 
        val config = DbxRequestConfig("Name/Version")
        // tokenを設定します。
        val client = DbxClientV2(config, token)
        // 一覧を取得します。liatFolderには取得したいPathを入れます。
        // ここでは、一番上(root)を指定しています。
        val resultList = client.files().listFolder("").entries
        withContext(Dispatchers.Main) {
            for (metadata in resultList) {
                // metadataから値を取得できます。
                metadata.name // ファイル名もしくはフォルダ名
                metadata.toString() // このファイルに対してのjsonが取れます。
            }
        }
        withContext(Dispatchers.Main) {
            // ここでUIの更新を行います。
        }
    } catch (e: Exception) {
        // エラー処理
    }
}