Xamarin.FormsでTwitter APIを使ってみるの第2弾として、画像付きの投稿・リツイート・いいね(ふぁぼ)をしてみたいと思います。画像付きの投稿はURIからの画像取得をしていたり、リツイートの取り消し方法についても触れています。
CoreTweetのバージョン5.3を使用しています。
前回の記事
とりあえず動かしてみた
画面の概要
コントロール | 説明 |
HELLO TWITTER | 「Hello Twitter」とツイートします。 |
ついーと | ユーザの画像を添付してEntryに入力した内容をツイートします。 |
リツイート | 指定したツイートをリツイートします。 |
リツイートを取り消す | 指定したツイートのリツイートを取り消します。 |
ふぁぼ(いいね) | 指定したツイートをふぁぼ(いいね)します。 |
ふぁぼ(いいね)を取り消す | 指定したツイートのふぁぼ(いいね)を取り消します。 |
動作の確認
CoreTweetの使い方
文字だけのツイートについて

文字だけのツイートに関しては前回も触れたのにゃ~。ただし今回は、ラムダ式を使用して呟いているのにゃ~。

最初は使い方がよく分からなかったのですが、予め用意された変数をラムダ式内で使用してやる必要があります。ツイートの内容に関しては、statusという変数を使わないと正しくツイートができません。
画像付きのツイートについて

ついーとをタップすることで入力した文字と管理人の画像がツイートされるのにゃ~。以下の様にコーディングしたのにゃ~。

この中で最も悩んだのが、ツイートしているユーザの画像をどうやってStream型に変換するかだったのにゃ~。

結論として、HttpClientのGetAsyncメソッドを使う事で無事にURIから画像を取得することができたのにゃ~。

ちなみに、HttpClientを使用したい場合は、NuGetでSystem.Net.Httpを取得すれば使えます。
ツイートの削除について

ツイートの削除に関しては初見でも簡単にわかるのにゃ~。ですとろいですとろい~。
リツイート・リツイートの取り消しについて

画像の変換の次に悩んだのが、リツイートの取り消し方だったのにゃ~。

ツイートをするとTweetIDが裏で振られているのにゃ~。ツイートを削除する場合はこのTweetIDをDestroyすれば削除できるのにゃ~。

同様にして、リツイートを行った場合にもRetweetIDが振られていて、それを消すことでリツイートの取り消しができるのにゃ~。

しかし、単純にツイートを取得してもRetweetIDは分かりません。なのでツイート取得時にinclude_my_retweet => trueとオプションを指定することで取得が出来るようになります。
簡単にUnRetweetする方法

CoreTweetのv0.62からは普通にUnRetweetが使えます!でもProfile259だとインストールできないよ!!プロファイルほろべ!

こういう感じで使えるのにゃ~。
ふぁぼ(いいね)・ふぁぼ(いいね)の取り消しについて

もはやファボとは言わないのかにゃ~?

ふぁぼ(いいね)についてはFavoritesという拡張メソッドが用意されているからそちらを使うのにゃ~。リツイートとは違って取り消しも非常に簡単なのにゃ~。

リツイートの拡張メソッドはよ。
自分のタイムラインの取得について

一行でタイムラインを取得できるのにゃ~。

一応ですが、タイムラインはここに表示されるツイートの事を指します。
指定したユーザのツイート一覧の取得

特定のユーザのツイート一覧も取得できるのにゃ~。

メソッドの引数に今までラムダ式で渡していましたが、このようにDictionaryで渡すことも可能です。

ちなみに、count (ツイートの取得件数)はデフォルトだと20件になっています。
Download

今回のプログラムは以下にアップロードしています。ご自由にどうぞ。
まとめ
- CoreTweetを使えば画像付きの投稿もリツイートもふぁぼも簡単にできる
- v0.53だとリツイートの取り消しが若干面倒
- URIから画像を取得する場合はHttpClientを使うと簡単になる