2013年12月18日水曜日

imgurを利用したアップロードライブラリ(Android)

imgurとは

画像共有サイトです。
アップロード機能があるのですが、APIが公開されているので、簡単にアップロードができるAndroidライブラリプロジェクトを作りました。

android-library-imgur-UploadHelper



設定

まずは、imgur apiを使うためにアカウント登録して、
Client ID と Secret IDを発行しなければなりません。

登録したら、このリポジトリからソースを落としてください。

ライブラリプロジェクトなので、組み込みたいプロジェクトのプロパティから追加してく設定してください。



ソース
UploadHelper helper = new UploadHelper(this, this);
                helper.setClientId("YOUR_CLIENT_ID");
                helper.setSecretId("YOUR_SECRET_ID");

                helper.uploadData(imageReturnedIntent.getData());

基本的には使用したいActivity内で、上記の設定とimplements methodを書けば使えます。
インスタンス作成時にViewを渡せば、通信中はそのViewを押せなくすることもできます。uploadDataの引数はUriです。
第2, 3引数に文字列を渡せば、通信ダイアログのタイトルとメッセージを設定できます。
成功すればsuccess methodがcallbackで呼ばれます。



課題

とりあえずGithubで公開したい!という気持ちが先走って、エラーハンドリングがうまくできていなかったり、バグがあったりします汗
Oauth認証の部分も、ほとんどimgurのサンプルのまんまです。

画面も回転させると、通信中のダイアログが消えてしまいます(通信は継続)。
Utilityも充実してないし。
pull request、改善案などをお待ちしております。


参考

Github ImgurAPIv3ExampleAndroid