接續前一篇文章,將 Twitterizer API 加入專案後,接著就可以撰寫程式碼來玩 Twitter
更多文章,請到我在點部落所建立的部落格「.NET菜鳥自救會」閱讀
http://www.dotblogs.com.tw/chou/
簡介
接續前一篇文章,將 Twitterizer API 加入專案後,接著就可以撰寫程式碼來玩 Twitter
程式碼
以下功能為輸入 Twitter 帳號與密碼後,可選擇要做的功能 : 更新狀態、刪除狀態、顯示目前狀態,按下 Button 即可。
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Twitterizer.Framework;
namespace SmartDeviceTwitter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnProcess_Click(object sender, EventArgs e)
{
try
{
// start===Instantiate the Twitter object===
Twitter twit = null;
twit = new Twitter(this.txtUserName.Text, this.txtPassWord.Text);
// end======================================
if (this.rbUpdate.Checked == true) // if user select update the status
{
if (this.txtMessage.Text.Length == 0)
{
MessageBox.Show("Please input status");
}
// start====Updating Your Status===
TwitterStatus ts = twit.Status.Update(this.txtMessage.Text);
// end==============================
}
else if (this.rbDestroy.Checked == true)
{
if (this.lstData.SelectedIndex < 0) // when user don't select the status
{
MessageBox.Show("Please select status");
return;
}
// start====Search and Destroy===
TwitterStatusCollection twStatus = twit.Status.UserTimeline();
foreach (TwitterStatus status in twStatus)
{
if (status.Text == this.lstData.SelectedItem.ToString())
{
twit.Status.Destroy(status.ID);
}
}
// end==============================
}
this.lstData.Items.Clear(); // lisData items clear
// start====list the Twitter Status===
TwitterStatusCollection myStatus = twit.Status.UserTimeline();
foreach (TwitterStatus status in myStatus)
{
this.lstData.Items.Add(status.Text);
}
// end==============================
MessageBox.Show("Success");
}
catch (TwitterizerException twEx)
{
MessageBox.Show(twEx.Message.ToString());
}
}
private void rbUpdate_CheckedChanged(object sender, EventArgs e)
{
rBtn_process();
}
private void rbDestroy_CheckedChanged(object sender, EventArgs e)
{
rBtn_process();
}
private void rbRefresh_CheckedChanged(object sender, EventArgs e)
{
rBtn_process();
}
private void rBtn_process()
{
if (this.rbUpdate.Checked == true)
{
this.btnProcess.Text = "Update";
this.txtMessage.Enabled = true;
this.labMessage.Text = "Input Update Status";
}
else if (this.rbDestroy.Checked == true)
{
this.btnProcess.Text = "Destory";
this.txtMessage.Enabled = false;
this.labMessage.Text = "Select Status in Status List";
}
else if (this.rbRefresh.Checked == true)
{
this.btnProcess.Text = "Refresh";
this.txtMessage.Enabled = false;
this.labMessage.Text = "Refresh Status List";
}
}
}
}
執行時 API 出現錯誤,原因是 Twitterizer.Framework 中的 Status.ID 宣告為 int,但是 Status.ID 為 3065796848,int 最大值為 2147483647,因此超出範圍,將 Status.ID 型別修改為 Int64 解決此問題,改了幾個地方。
另外,在 twitterizer 的 Getting Started 頁面中,對於如何使用 Twitterizer .NET Twitter Interface有詳細的說明。