C#からOneDrive API(2) Xamarinで認証
あすかです。
前回はOneDrive公式SDKを使って、UWPから認証してみました。
今回はXamarinから認証してみます。
設計
前回UWPで作った時の設計はこんな感じでしたね。
実は、これはXamarin.Formsでもそのまま通用する設計になっています。
XamarinもUWPとほとんど同じコードで構いません。前回のコードから少しだけ修正も入っていますが、大した差ではありません。
中身について詳しくは前回の記事を参照してください。
でもスマホの小さな画面で認証と認証結果を同時に表示させるのはちょっときついので、メイン画面と認証画面を分けます。
こうします。
今回作るのは、MainPageとAuthPageが中心です。
ViewModelにも修正入ってますが細かいのでgitのログへどうぞ(´・ω・`)
作って実行
このボタンをクリックすると、
認証画面があらわれまして、
ここで「はい」をタップして、真っ白なページが出てしばらくたったら自動的に前のページに戻ります。
成功しました。わーいわーい
はいおわり
UWPでViewModelとModelを書いたら、Xamarin.Formsでもほとんど同じコードで使いまわせました。
修正するのはViewだけです。
これがMVVMのいいところですね!
(余談)MSA Auth Adapter
尺が余ったので(?)余談でお茶を濁します。
OneDrive公式SDKは認証のとこがめんどい自分で書くしかないと前回の記事で書きましたが、
実はMSA Auth Adapterというのが提供されていまして、これを使えば楽に認証部分書くことができるらしいです。
でもこれ、PCLと書いているのですが、なぜか私がやったときはWPFとUWPにはインスコできて、Xamarinには入りませんでした。
ほんとなんでなんでしょう。
なので今回は、Xamarin.Formsを意識してこのライブラリは不採用、UWPもそれにつられて不採用、という形にしました。
公式SDKはXamarinにも入れられるPCLなのに、もったいない。
ああまだ尺が余ってる