PDA

View Full Version : خواندن توییت ها از توییتر با استفاده از LinqToTwitter در C#‎‎‎



95Amirreza
یک شنبه 06 دی 1394, 14:08 عصر
مقاله ای بسیار کاربردی و جالبیست که در محیط سی شارپ (http://www.mspsoft.com/training-programing/csharps/)آموزش داده شده است میتوانید توسط این آموزش اطلاعات و توییت های که در اکانت Twitter دارید در یک پروژه سی شارپی بخوانید.

پیش نیاز های اضافه کردن :




Visual Studio 2013
C#‎‎‎‎‎‎
LinqToTwitter

در ابتدا نیاز داریم که یک App در توییتر ریجستر کنیم، در ادامه مراحل آن را توضیح داده ایم:
قدم اول: وارد توییتر شوید و به آدرس https://dev.twitter.com/ و به قسمت پایین بروید زیر قسمت ابزار ها، روی Manage your apps کلیک کنید. شما می توانید در داشبورد لیست App که قبل ایجاد شده اند، ببینید.

137711

قدم دوم: روی Create New App کلیک کنید، صفحه زیر را مشاهده خواهید کرد. اکنون، جاهای خالی را پر کنید:
137712

قدم سوم: به قسمت کلید ها (keys) بروید و به تب های نشان شده را کامل کنید، در آن Consumer key و Consumer Secret را خواهیم داشت و به Access token و Access TokenSecret نیاز داریم. برای دست یابی به کلید دسترسی، روی دکمه Generate Access Token کلیک کنید. حالا Access token و Acess Token Secret قابل رویت خواهند شد. ما به این ۴ کلید برای آوردن اطلاعات از توییتر نیاز داریم.
قدم چهارم: حالا VS 2013 را باز کنید و یک اپلیکیشن کنسول (C#‎‎‎‎‎‎) بسازید و LinqToTwitter library را ازnugget (https://linqtotwitter.codeplex.com/)اضافه کنید.

قدم پنجم: یک method همانند کد زیر بسازید:






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.ToStrin g()) - 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.ToStrin g()) - 1;
ownTweets.AddRange(statusResponse);
}
else
{
flag = false;
}
}
else
{
flag = false;
}
} while (flag);

return ownTweets;
}

}


توضیحات: LINQ به توییتر برای عبور از پردازش اختیارات توییتر ساخته شده، اگر شما نیز کلید های ثبت نام شده را داشته باشید فقط در هر ۱۵ دقیقه میتوانید ۱۸۰ درخواست ثبت کنید
API توییتر در هر ۱۵ دقیقه به ۱۸۰ در خواست اجازه می دهد که ارسال شود و دسترسی پیدا کند.
موفق باشید.