خواندن Tweets از Twitter با استفاده ازLinqToTwitter

پنجشنبه 9 مهر 1394

در این مقاله قصد داریم چگونگی واکشی اطلاعات از Twitter را با استفاده از LinqToTwitter نشان دهیم ، برای این کار اولین قدم ثبت نام کردن در سایت Twitter هست.

خواندن Tweets از Twitter با استفاده ازLinqToTwitter

قدم اول:وارد سایت Twitter شوید، با استفاده از اسکرول صفحه به قسمت پایین بیایید و در قسمت Tools

Manage your apps را انتخاب نمایید.

برنامه های کاربردی که قبلا ساخته شده است در یک لیست نمایش داده می شود.

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

داخل تب چند کلید وجود دارد که شامل:

1-Consumer key

2-Consumer Secret

3-Access token

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;  
    }  
  
}

آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 1k بازدید
  • 1 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید