認証について
- TwitterAuthClient.authorize()を使う
- アカウント連携画面の結果はTwitterAuthClient.onActivityResult()で受け取る
- TwitterAuthClient.authorize()は状態(authState)を持つ
- アカウント連携画面でキャンセルされた場合もTwitterAuthClient.onActivityResult()を経由させる。
- そうしないとauthStateが処理中のままになり、authorize()ができなくなる。
- 処理中を解除したい場合はTwitterAuthClient.cancelAuthorizeでキャンセル可能
画像のアップロードについて
- 画像のアップロードはTwitterアプリを使う方法(TweetComposer経由)と自分のアプリから行う方法(ComposerActivity経由)がある。
- ネットワーク上にあるファイルのアップロードは不可。一度ダウンロードする必要がある。
TweetComposerを使う場合
- FileProvider(ContentProvider)による提供
- Twitterアプリを使う方法ではアプリがインストールされていないとブラウザ経由になる
- ブラウザ経由の場合はイメージの自動投稿ができない
- ハッシュタグをbuilderから渡せない(textにつなげる)
Uri contentUri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".file_provider", newFile);
new TweetComposer.Builder(activity)
.image(contentUri)
.text(text)
.show();
ComposerActivityを使う場合
- contentスキーマ(content://)の場合はMediaStoreから取得可能なものしか投稿できない。FileProvider.getUriForFileはNG。
- ただし、ファイルスキーマ(file:)なら可能 Uri fileUri = Uri.fromFile(file); を使う
Uri fileUri = Uri.fromFile(newFile);
final Intent intent = new ComposerActivity.Builder(activity)
.session(session)
.image(fileUri)
.text(text)
.hashtags(hashTags)
.createIntent();
activity.startActivity(intent);