Windows IoT Core からインターネットに簡単にアクセスできることが分かったので、もうちょっ突っ込んで Twitter API を呼んでみましょう。Twitter API の呼び出しは、認証やらあれこれがあって自前で組むと結構大変ですが、Windows の .NET が使えるので、NuGet から CoreTweet を使って Twitter API をアクセスすることができます。
NuGet Gallery | CoreTweet 0.7.2.352
これは、Windows IoT Core が UWP アプリだからできることで、これは生の Raspberry Pi で Rasbian を使ったときよりも有利な点です(まあ、apt-get してあれこれやればいいんですけどね。Python を使えばそれほど難しくない)。
サンプルを動かしてみよう
moonmile/winiot-samples: Windows IoT Core samples
ここの RPiFavo をダウンロードすると簡単ですが Twitter のファボを利用できます。API キー等は、頑張って Twitter のデベロッパーのサイトから取得してください
const string ApiKey = "API_KEY";
const string ApiSecret = "API_SECRET";
const string AccessToken = "ACCESS_TOKEN";
const string AccessTokenSecret = "ACCESS_TOKEN_SECRET";
画面を作る
XAML を使ってデザインしていきます。
コードを書く
ファボ(現いいね)を取得するところは、普通の UWP アプリと変わりません。GET ボタンをクリックするとファボの一覧を取ってきて、ListView に表示させています。
/// <summary>
/// ファボを取得
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void Button_Click(object sender, RoutedEventArgs e)
{
var tokens = CoreTweet.Tokens.Create(ApiKey, ApiSecret, AccessToken, AccessTokenSecret);
var favs = await tokens.Favorites.ListAsync();
var items = new List<Status>();
foreach (var it in favs)
{
items.Add(it);
}
lv.ItemsSource = items;
text1.Text = $"Count: {items.Count}";
return;
}
これだと、いちいち画面でマウスをクリックしなければいけないので、外部のボタンと連携させるといいですよね。そのあたりは、最初のボタン - Qiita と組み合わせると、物理的なボタンを押したらファボを取ってくるような Raspberry Pi ができるわけです。
動作させてみる
実機で動かすとこんな感じになります。
モニタがあればそれに出力していもいいし、ネットワークを通じて別の PC に送信してもいいし、色々できると思うので試してみてください。