TwitterのFabric SDKをAndroid Studioで使ってみる

Posted by kwmt on Mon, Nov 10, 2014

はじめに

ひさびさTwitterをつかってアプリつくろうと思ってディベロッパーサイトに行ったら、fabric?????とか出てきてなんじゃこれ?と思って調べてたら、10/22(現地時間)に発表されたTwitterのモバイル向け新SDKとやららしい。

Twitter、モバイルアプリ向け新SDK「Fabric」発表 パスワード不要の次世代認証「Digits」リリース – ITmedia ニュース

まぁ英語でもいいんだけど、日本語の情報ないかなぁと探してみたけど、全然ない(´・ω・`)

ということで、Android StudioでFabric SDKのセットアップしてから、ツイートできるようになるまでを書いてみようと思います。

Android版Fabricの公式サイト

https://dev.twitter.com/twitter-kit/android

確認したバージョン

アプリの登録

https://apps.twitter.com/

これは普通に登録するだけ(今までどおり)

Fabric SDKのセットアップ

IDEプラグインをダウンロードすることもできるみたいだが、Gradleを使っているなら、build.gradleに書くだけで済ませたい。

基本的には下記を参考にすればよいと思うのですが、早速build.gradleの設定ではまった。

https://dev.twitter.com/twitter-kit/android/integrate

上記書いてあるとおりに記述してもsyncに失敗するので、Fabric SDKを使うには下記のように設定すればsyncは通っていけたっぽい。

API KEYとAPI Secretを追加する

https://dev.twitter.com/twitter-kit/android/integrate に「Add API Key and Build Secret」があるが、/app/crashlytics.properties にAPI KEYとAPI Secretを書きます。

crashlytics.propertiesに書いたKEYとSECRETの使い方に関しては、下記のリポジトリのbuild.gradleが参考になった。

https://github.com/twitterdev/cannonball-android/blob/master/app/build.gradle

僕が書いたのは下記です。

これは、buildConfigFieldを使っていて、アプリ内でBuildConfigを使ってKEYとSECRETを使えるようにしています。

次のように、ApplicationクラスのサブクラスでAPI KEYとSECRETを使ってFabric SDKの初期化します。

※AndroidManifest.xmlにandroid:name=".App"を追加することを忘れないこと。

Twitterでログインする

https://dev.twitter.com/twitter-kit/android/twitter-login

ログイン画面を作成します。

プレビューは「SIGN IN WITH TWITTER」と英語表記ですが、日本語設定の端末で確認すると「Twitterでログイン」と日本語になっています。

Activityの方は公式サイトどおりでいけます。

ログイン成功後のTwitterSessionを受け取る事ができるのですが、result.dataで取得できます。

TwitterのREST APIを使う

https://dev.twitter.com/twitter-kit/android/api

公式サイトの例は、1つのツイートを取得しています。

https://dev.twitter.com/rest/reference/get/statuses/show/%3Aid

僕はツイートしたかったので、こんな感じになりました。

StatusesService#updateの引数の順番は、REST APIドキュメントの順番どおりです。

https://dev.twitter.com/rest/reference/post/statuses/update

このtweetメソッドを呼びたいタイミングで呼べばツイートできます。

おわりに

以上で、Fabric SDKのセットアップからツイートまでを書きましたが、TweetUi Kitや TweetComposer Kitなるものがあったり、電話番号を使ってサインインするDigitsなるものがあるみたいですね。



comments powered by Disqus