1. CheckApi.aspx
↓
2. Twitterログイン画面
↓
3. TwitterCallback.aspx
全ての aspx.cs ファイルには次のようにキーをセットしておきましょう(もちろん設定ファイルに外だしするのがベスト)
using CoreTweet;
public const string CONSUMER_KEY = "OWCPpT5DZYA1....................";
public const string CONSUMER_SECRET = "lrtzd7MxAX3oDW.....................................................";
public const string OAUTH_CALLBACK = "http://YOUR-SERVER.TLD/TwitterCallback.aspx";
protected void Page_Load(object sender, EventArgs e)
{
var oauth_session = OAuth.Authorize(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_CALLBACK, null);
var url = oauth_session.AuthorizeUri;
Session["OAuthSession"] = oauth_session;
Response.Redirect(oauth_session.AuthorizeUri.OriginalString);
}
protected void Page_Load(object sender, EventArgs e)
{
string oauth_token = Request.QueryString["oauth_token"];
string oauth_verifier = Request.QueryString["oauth_verifier"];
// OAuthSessionインスタンスを復元
var oauth_session = Session["OAuthSession"] as OAuth.OAuthSession;
if (oauth_session == null)
{
throw new HttpException(403, "oauth_session is null");
}
var token = oauth_session.GetTokens(oauth_verifier);
if (token == null)
{
throw new HttpException(403, "oauth token is null");
}
// ツイートする
postImageAndTweet(token);
}
protected void postImageAndTweet(CoreTweet.Tokens token)
{
// 画像をアップロード
//media 引数には FileInfo, Stream, IEnumerable<byte> が指定できます。
//また media_data 引数に画像を BASE64 でエンコードした文字列を指定することができます。
MediaUploadResult upload_result = token.Media.Upload(media: new FileInfo(@"C:\img\up_test.png"));
// 画像とテキストをツイート
string tweet_text = "ツイートのテストです";
token.Statuses.Update(new {
status = tweet_text ,
media_ids= new long[] { upload_result.MediaId }
});
}
base64 でエンコードした画像データを使用する場合は
string png_base64 = "iVBORw0K...........ggg==";
MediaUploadResult upload_result = token.Media.Upload(media_data: png_base64);
のように media_data で渡します。