iOSでdropbox連携を行う(第2回)

2019年9月13日

数回に渡ってお送りしているiOSでのdropbox連携。その2回目です。

前回は、SwiftyDropboxを新規プロジェクトに組み込むところまで行いました。
今回は、実際にライブラリを使ってDropboxにログインして見たいと思います。

1. DropboxClientの初期化

Dropbox連携はDropboxClientというクラスを使用して行いますが、その初期化を行います。
まずは、Application delegeteあたりに下のコードを記述しましょう。
基本的にはどこで初期化をしても良いのですが、アプリ起動時に初期化してしまうのが楽だと思いますので、そのタイミングで呼ばれる application:didFinishLaunchingWithOptions: で記述しちゃいます。
“”の部分には、前回のアプリ登録で確認したAppKeyに置き換えてください。
また、SwiftyDropboxライブラリを使いますので、import文も追加するのを忘れずに。

これでクライアントに固有キーを設定できるようになりました。

2. ログイン認証の準備(認証ボタンの作成)

次にdropboxの認証を行います。 …が。
アプリが起動したら勝手に認証するのでは、ユーザーがビックリするので、
認証用のボタンを用意することにします。

まずは、左側のMain.storyboardをクリックして、InterfaceBuilderを開きます。(①)
そして、左下のウィンドウからButtonを画面レイアウトの上にドラッグします。(②)

次にボタンの位置を左下で固定するための設定を行います。
左下の方にあるアイコンをクリックして、設定画面を出します。(③)

設定画面の上側にある上下左右のスペースの設定で、下と右に16を入力します。(④)
ついでにその下にあるチェックボックスもチェックを外します。(⑤)
これがチェックされていると、思ったよりスペースが空いて表示されたりします。

次に右上の方に並んでいるアイコンの左から2つ目をクリックします。(⑥)

すると画面が分割されてコードが出てきます。
次に配置したボタンの上で”control”キーを押しながらクリックします。(⑦)
黒いメニューが出てきたら、”Touch Up Inside”という項目の右側にある”+”をソースコードにドラッグします。(⑧)

追加するメソッド名を入力して、”connect”をクリックします。
今回は、”pushAuthentication” というメソッド名にしました。
これで、ボタンが押されたら”pushAuthentication”が呼ばれるように設定できたことになります。

3. ログイン認証

さて、今度は右上に並んでいるアイコンの一番左をクリックしてから、ソースに戻りましょう。
それでは、認証コードを記述します。
追加されたpushAuthenticationメソッドに下記を書きましよう。
ここでもSwiftyDropboxライブラリを使いますので、import文も追加するのを忘れずに。

これだけで、ログインの認証画面が出るようになりました。
試しに実行してみると…
※ ネットワークに繋がっていないと、エラーダイアログが出ますので、インターネットに繋がっている状態で実行してください。

こんな感じでログインしたような感じがありますね。
ただ、これではちゃんとログインができたのかよくわからないので、
最後に結果を受け取れるようにしましょう。

4. 結果の受け取り

次のコードをApplication delegeteに追加します。

これで、認証の成功、キャンセル、エラーがログに出力されるようになります。
では、もう一度実行して見ましょう。
下のようにログが出れば、認証が成功しています。

ちなみに、ログイン画面でキャンセルすると、次のようになります。

エラーは発生のさせ方が分からなかったので、発生させることができたら、追記しようと思います。

さ〜、これでやっとログイン完了まできました。
次はいよいよ、Dropboxからデータを取ってくる部分となります。
それでは、また次回をお楽しみに!