LoginSignup
5
9

More than 5 years have passed since last update.

xamarinでDropBox連携チュートリアル

Last updated at Posted at 2017-06-25

xamari.formでDropboxApiを利用します。
チュートリアルを参考に試してみました。

前提

開発者向けのDropBox連携(≠ユーザーのDropBoxに連携では無い)
環境:VisualStudio for mac

ソース
https://github.com/xamarin-okinawa/sample-dropbox

下記トークンをDropBoxで取得したGenerated access tokenに書き換えれば動作します。
DropBoxSamplePage.xaml.cs

private static string _GeneratedAccessToken = "Input Generated Access Token";

1.DropBoxでApp登録

アクセスキーが必要なのでDropBoxでAPP登録をしてGenerated access tokenを取得します。
スクリーンショット 2017-06-25 18.45.45.png

2. プロジェクトを作成

いつも通り空のプロジェクトを作成
スクリーンショット 2017-06-25 18.36.37.png

3. パッケージをインストール

チュートリアルのインストールに従ってDropBoxAPIをインストールします。
スクリーンショット 2017-06-25 18.38.09.png

4. DropBoxAPI接続確認

必要はパッケージは揃ったのでチュートリアルソースを元にサンプルを作成します。

.xaml
<Button x:Name="buttonConfim" Text="接続確認" />
.cs
        public DropBoxSamplePage()
        {
            InitializeComponent();

            buttonConfim.Clicked += ButtonConfim_Clicked;
        }

        void ButtonConfim_Clicked(object sender, EventArgs e)
        {
            var task = Task.Run((Func<Task>)Confirm);
            task.Wait();
        }

        /// <summary>
        /// DropBox接続確認
        /// </summary>
        /// <returns>The confirm.</returns>
        private async Task Confirm()
        {
            using (var dbx = new DropboxClient(_GeneratedAccessToken))
            {
                var full = await dbx.Users.GetCurrentAccountAsync();
                System.Diagnostics.Debug.WriteLine("{0} - {1}", full.Name.DisplayName, full.Email);
            }
        }

これで画面を立ち上げてボタンクリックで確認。
スクリーンショット 2017-06-25 19.03.28.png

アプリケーション出力で開発者の情報が確認できればOK
スクリーンショット 2017-06-25 19.01.06.png

4. テキストファイルアップロード

チュートリアルのもうひとつ。
ファイルのアップロードを試してみます。

.xaml
        <Entry x:Name="entText" Placeholder="文字を入力してください" />
        <Button x:Name="buttonOK" Text="ファイル更新" />
.cs
        public DropBoxSamplePage()
        {
            InitializeComponent();


            buttonOK.Clicked += ButtonOK_Clicked;
            buttonConfim.Clicked += ButtonConfim_Clicked;
        }

        void ButtonOK_Clicked(object sender, System.EventArgs e)
        {
            var task = Task.Run((Func<Task>)Upload);
            task.Wait();
        }

        /// <summary>
        /// DropBoxアップロード
        /// </summary>
        /// <returns>The confirm.</returns>
        private async Task Upload()
        {
            string folderName = "datas";
            string fileName = "otameshi.txt";
            string content = entText.Text;

            using (var dbx = new DropboxClient(_GeneratedAccessToken))
            {

                using (var mem = new MemoryStream(Encoding.UTF8.GetBytes(content)))
                {
                    var updated = await dbx.Files.UploadAsync(
                        "/" + folderName + "/"  + fileName,
                        WriteMode.Overwrite.Instance,
                        body: mem);
                    System.Diagnostics.Debug.WriteLine("Saved {0} rev {1}", fileName, updated.Rev);
                }
            }
        }

画面を起動して確認
スクリーンショット 2017-06-25 19.39.47.png

ファイル更新ボタンをクリックしDropboxでファイルが作成されていればOK
スクリーンショット 2017-06-25 19.40.54.png
スクリーンショット 2017-06-25 19.41.01.png

まとめ

今回は開発者のDropBoxの連携でしたが、
次はユーザーのDropBox認証について検証します。

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9