c# で Dropbox API からアップロード
c#でDropboxにファイルアップロードしようと思い、ググって出てきたSharpBoxというライブラリを使ってみた。
使ってみたのだけれど、いざマニュアル読んでみると記述がバラバラだったり、チュートリアルがいい加減だったりして、使えそうになかった。
他に良いものはないかと探したところ、DropNetというものを見つけた。
こちらは簡単に使えたのでオススメです。
とりあえずアップロードできるところまで
using System; using System.IO; using DropNet; namespace test { class Program { private const string dropbox_app_key = "apikey"; private const string dropbox_app_secret = "apisecret"; static void Main(string[] args) { DropNetClient _client; if ((Properties.Settings.Default.dropbox_user_token=="")) { // 初回の起動 - Dropboxへのアクセスを許可してトークンを app.config に書く _client = new DropNetClient(dropbox_app_key, dropbox_app_secret); _client.GetToken(); var url = _client.BuildAuthorizeUrl(); Console.Write("以下のURLにブラウザで接続して、DropBoxへのアクセスを許可してください。\n\n" + url + "\n\n" + "アクセスを許可したら、Enterを押してください。 >"); var tmp = Console.ReadLine(); var accessToken = _client.GetAccessToken(); if (accessToken == null) return; // app.config に書く Properties.Settings.Default.dropbox_user_token = accessToken.Token; Properties.Settings.Default.dropbox_user_secret = accessToken.Secret; Properties.Settings.Default.Save(); } else { // 2回目以降の起動 _client = new DropNetClient(dropbox_app_key, dropbox_app_secret, Properties.Settings.Default.dropbox_user_token, Properties.Settings.Default.dropbox_user_secret); } // ファイルアップロード using (var fs = new FileStream(@"C:\temp\1.jpg", FileMode.Open) ) { var uploaded = _client.UploadFile( "/Public/", "1.jpg", fs); } } } }
DropboxのPublicフォルダはWebサーバーのようにだれでもアクセスできるので、そういった方向で使用するためのアップローダーを書いてみたという訳です。
Dropbox APIキーは Dropbox Developersで取得します。