Xamarin.FormsでTwitter APIを使ってみるの第2弾として、画像付きの投稿・リツイート・いいね(ふぁぼ)をしてみたいと思います。画像付きの投稿はURIからの画像取得をしていたり、リツイートの取り消し方法についても触れています。

CoreTweetのバージョン5.3を使用しています。

前回の記事

とりあえず動かしてみた

画面の概要

コントロール説明
 HELLO TWITTER「Hello Twitter」とツイートします。
 ついーと ユーザの画像を添付してEntryに入力した内容をツイートします。
 リツイート 指定したツイートをリツイートします。
リツイートを取り消す 指定したツイートのリツイートを取り消します。
ふぁぼ(いいね) 指定したツイートをふぁぼ(いいね)します。
ふぁぼ(いいね)を取り消す 指定したツイートのふぁぼ(いいね)を取り消します。

動作の確認

CoreTweetの使い方

文字だけのツイートについて

りんちゃんりんちゃん

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


かりまたかりまた

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

画像付きのツイートについて

りんちゃんりんちゃん

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

りんちゃんりんちゃん

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

りんちゃんりんちゃん

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

かりまたかりまた

ちなみに、HttpClientを使用したい場合は、NuGetSystem.Net.Httpを取得すれば使えます。

ツイートの削除について

りんちゃんりんちゃん

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

リツイート・リツイートの取り消しについて

りんちゃんりんちゃん

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

りんちゃんりんちゃん

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

りんちゃんりんちゃん

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

かりまたかりまた

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

簡単にUnRetweetする方法

かりまたかりまた

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

りんちゃんりんちゃん

こういう感じで使えるのにゃ~。

ふぁぼ(いいね)・ふぁぼ(いいね)の取り消しについて

りんちゃんりんちゃん

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

りんちゃんりんちゃん

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

かりまたかりまた

リツイートの拡張メソッドはよ。

自分のタイムラインの取得について

りんちゃんりんちゃん

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

かりまたかりまた

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

指定したユーザのツイート一覧の取得

りんちゃんりんちゃん

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

かりまたかりまた

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

かりまたかりまた

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

Download

かりまたかりまた

今回のプログラムは以下にアップロードしています。ご自由にどうぞ。

まとめ

  • CoreTweetを使えば画像付きの投稿もリツイートもふぁぼも簡単にできる
  • v0.53だとリツイートの取り消しが若干面倒
  • URIから画像を取得する場合はHttpClientを使うと簡単になる