lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

C# CoreTweetのTutorialを少しやった

概要

ASP.NETで書いてるコードで躓いたので原点回帰でもないですけど
CoreTweetの公式Tutrialを必要そうなところだけちょろっとやったのでメモ

やったこと

  • OAuth認証
  • AccessTokenとAccessTokenSecretの取得(認証の永続化?)
  • ツイート
  • 任意のツイートに返信(リプライ)

環境

  • Win 10 Pro
  • VisualStudio 2015 UP3
  • .NET Framework 4.6
  • CoreTweet v0.8.2.404

ソース

github.com

前提

TwitterAPIキーの取得

所謂ConsumerKeyとConsumerSecretですね。
ココらへんに書いてあります。
参考:ASP.NET MVCでTwitter連携の認証 - あとらすの備忘録

CoreTweet Tutorial

こちらのクイックチュートリアルをかいつまんでやりました。
github.com

OAuth認証

var s = OAuth.Authorize("Consumer_key", "Consumer_Secret");
//PINコードを取得するためのURLを発行
Console.WriteLine("access here: {0}", s.AuthorizeUri);

//PINコードを入力
var pin = Console.ReadLine();
var t = s.GetTokens(pin);

//テストツイート
t.Statuses.Update(status => "CoreTweet Tutorial hello");

URLにアクセスし、PINコードを入手して入力
そしたらトークンが生成されるのでツイートされる。

メモ:Read-only application cannot POST

初っ端にRead-only application cannot POSTって例外がスローされた
Twitter APIパーミッションがおかしいらしいがちゃんと「Read & Write」になっていた。
念の為、パーミッションの更新を掛けてやるとでなくなった。

AccessTokenとAccessTokenSecretの取得

いちいちPINコードを入力していたはアホらしいのでAccessTokenAccessTokenSecretを取得して
これがあれば何でもできる状態にする。

上記のコード実行時に続けて下記のコードも実行する。

Console.WriteLine("AccessToken:{0}",t.AccessToken);
Console.WriteLine("AccessTokenSecret:{0}", t.AccessTokenSecret);

コンソール画面にAccessTokenAccessTokenSecretが出力されるのでメモっておく。

AccessTokenとAccessTokenSecretを使用してTokenを作成

先程取得したAccessTokenAccessTokenSecretを使ってTokenを生成
ついでにリプライツイートも飛ばしてみる。

var t = Tokens.Create("Consumer_key",
                      "Consumer_Secret",
                      "AccessToken",
                      "AccessTokenSecret");
//PINコード無しでツイートできる。
var res = t.Statuses.Update(status => "CoreTweetReplyTest");
//リプライツイートのテスト
res = t.Statuses.Update(status => "Reply Test1", in_reply_to_status_id => res.Id);
res = t.Statuses.Update(status => "Reply Test2", in_reply_to_status_id => res.Id);

雑感

とりあえずメモ程度に
ASP.NETで書いてるコードだとリプライ先(メンション先?)が変わらなくてなんでだー?って躓いてたんですが
これで書いてるコードがおかしいのが確定したので良かったです。

このブログ書いたらポエム記事を書くんだって思ってたらもうこんな時間だよ