خواندن Tweets از Twitter با استفاده ازLinqToTwitter
پنجشنبه 9 مهر 1394در این مقاله قصد داریم چگونگی واکشی اطلاعات از Twitter را با استفاده از LinqToTwitter نشان دهیم ، برای این کار اولین قدم ثبت نام کردن در سایت Twitter هست.
قدم اول:وارد سایت Twitter شوید، با استفاده از اسکرول صفحه به قسمت پایین بیایید و در قسمت Tools
Manage your apps را انتخاب نمایید.
برنامه های کاربردی که قبلا ساخته شده است در یک لیست نمایش داده می شود.

صفحه نمایش زیر را خواهید دید و فیلد های مربوطه را پر می کنید:

داخل تب چند کلید وجود دارد که شامل:
1-Consumer key
2-Consumer Secret
4-Access TokenSecret
برای به دست آوردن کلید های اصلی روی دکمه ی Generate Access Token کلیک کنید.
این 4 کلید برای واکشی اطلاعات لازم است.
مرحله ی بعدی: ساخت یک console application است و اضافه کردن کتابخانه LinqToTwitter با استفاده از nuget
حالا یک متود به شکل زیر مینویسیم:
private static void Main(string[] args)
{
Console.WriteLine("working on it....");
var tweetList = GetTwitterFeeds();
Console.WriteLine("Tweets Count "+tweetList.Count);
var file = new System.IO.StreamWriter("D:\\TweetsList.txt",true); // Make sure to change the path according to your system
foreach (var item in tweetList)
{
file.WriteLine(item.CreatedAt);
}
file.Close();
Console.WriteLine("Done! check your drive file has been created");
Console.ReadLine();
}
public static List<Status> GetTwitterFeeds()
{
string screenname = "csharpcorner";
var auth = new SingleUserAuthorizer
{
CredentialStore = new InMemoryCredentialStore()
{
ConsumerKey = ConfigurationManager.AppSettings["consumerkey"],
ConsumerSecret = ConfigurationManager.AppSettings["consumersecret"],
OAuthToken = ConfigurationManager.AppSettings["accessToken"],
OAuthTokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"]
}
};
var twitterCtx = new TwitterContext(auth);
var ownTweets = new List<Status>();
ulong maxId = 0;
bool flag = true;
var statusResponse = new List<Status>();
statusResponse = (from tweet in twitterCtx.Status
where tweet.Type == StatusType.User
&& tweet.ScreenName == screenname
&& tweet.Count == 200
select tweet).ToList();
if (statusResponse.Count > 0)
{
maxId = ulong.Parse(statusResponse.Last().StatusID.ToString()) - 1;
ownTweets.AddRange(statusResponse);
}
do
{
int rateLimitStatus = twitterCtx.RateLimitRemaining;
if (rateLimitStatus != 0)
{
statusResponse = (from tweet in twitterCtx.Status
where tweet.Type == StatusType.User
&& tweet.ScreenName == screenname
&& tweet.MaxID == maxId
&& tweet.Count == 200
select tweet).ToList();
if (statusResponse.Count != 0)
{
maxId = ulong.Parse(statusResponse.Last().StatusID.ToString()) - 1;
ownTweets.AddRange(statusResponse);
}
else
{
flag = false;
}
}
else
{
flag = false;
}
} while (flag);
return ownTweets;
}
}
- C#.net
- 2k بازدید
- 1 تشکر