TwitterizerでOAuthトークンを取得する - C#

C#のTwitterライブラリ TwitterizerでOAuthトークンを取得するコードを紹介します。
注意
この記事で紹介している方法は 2015年時点の方法です。Twitterの仕様変更等でこのコードでは動作しない可能性が高いため、ご注意ください。

UI

下図のUIを準備します。ボタン2つ、テキストボックス2つを配置します。

コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Twitterizer;

namespace TwitterlizerTest
{
  public partial class FormMain : Form
  {
    static string ConsumerKey = "(Twitter.comで登録したアプリケーションのConsumerKey)";
    static string ConsumerSecret = "(Twitter.comで登録したアプリケーションのConsumerSecret)";

    OAuthTokenResponse oatr;


    public FormMain()
    {
      InitializeComponent();

    }

    private void button_OAuth_Click(object sender, EventArgs e)
    {
      oatr = OAuthUtility.GetRequestToken(ConsumerKey, ConsumerSecret, "oob");
      Uri uri = Twitterizer.OAuthUtility.BuildAuthorizationUri(oatr.Token);
      System.Diagnostics.Process.Start(uri.ToString());
    }

    private void button_Register_Click(object sender, EventArgs e)
    {
      string pin = textBox_PIN.Text;

      OAuthTokenResponse res = OAuthUtility.GetAccessToken(
        ConsumerKey, ConsumerSecret, oatr.Token, pin);
      string AccessToken = res.Token;
      string AccessTokenSecret = res.TokenSecret;

      textBox_Output.Text += "Accesss Token: " + AccessToken +"\r\n";
      textBox_Output.Text += "Accesss Token Secret: " + AccessTokenSecret + "\r\n";
    }
  }
}

解説

Twitterへのアプリケーションの登録方法や、ConsumerKey, ConsumerSecretの取得方法はこちらの記事を参照してください。

button_OAuth

ボタン"button_OAuth"をクリックすると
oatr = OAuthUtility.GetRequestToken(ConsumerKey, ConsumerSecret, "oob");
により、リクエストトークンを取得します。今回はスタンドアロンのアプリケーションなので第三引数のコールバックURLは"oob"とします。

Uri uri = Twitterizer.OAuthUtility.BuildAuthorizationUri(oatr.Token);
にて、BuildAuthorizationUri()メソッドを用いてリクエストトークンから認証URLを生成します。

System.Diagnostics.Process.Start(uri.ToString());
生成した認証URLをWebブラウザで開きます。

button_Register

テキストボックス"textBox_PIN"にPINコードを入力しボタン"button_Register"をクリックする操作を想定しています。

string pin = textBox_PIN.Text;
OAuthTokenResponse res = OAuthUtility.GetAccessToken(
  ConsumerKey, ConsumerSecret, oatr.Token, pin);
にて、ConsumerKey,ConsumerSecret,リクエストトークン,PINコードを用いてアクセストークンを取得します。アクセストークンはGetAccessToken()メソッドの戻り値として取得できます。

string AccessToken = res.Token;
string AccessTokenSecret = res.TokenSecret;
textBox_Output.Text += "Accesss Token: " + AccessToken +"\r\n";
textBox_Output.Text += "Accesss Token Secret: " + AccessTokenSecret + "\r\n";
アクセストークン、アクセスシークレットをテキストボックスに表示します。

実行結果

実行すると下図のウィンドウが表示されます。


OAuthボタンをクリックします。ブラウザが表示され下図の画面が表示されます。アプリケーションを利用するユーザーのTwitterユーザー名、パスワードを入力し[連携アプリを認証]ボタンを押します。


連携ができると下図の画面が表示されPINコードが表示されます。


アプリケーションに戻りPINコードを入力し[登録]ボタンを押します。


AccessToken, AccessTokenSecretを取得し画面に表示します。


以後ConsumerKey, ConsumerSecret, AccessToken, AccessTokenSecretを使い認証の必要なAPIを呼び出すことができます。
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-12-07
iPentec all rights reserverd.