この記事で紹介している方法は 2015年時点の方法です。Twitterの仕様変更等でこのコードでは動作しない可能性が高いため、ご注意ください。
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";
}
}
}
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ブラウザで開きます。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";
アクセストークン、アクセスシークレットをテキストボックスに表示します。