/// <summary> /// Calls Twitter API and checks if user is authenticated /// </summary> private void AuthenticateUser() { log.Info(string.Format("AuthenticateUser: Class {0} Method {1}", nameof(MyTwitterModule), nameof(AuthenticateUser))); try { singleUserAuthorizer = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = twitterConsumerKey, ConsumerSecret = twitterConsumerSecret, AccessToken = twitterAccessToken, AccessTokenSecret = twitterAccessTokenSecret } }; twitterContext = new TwitterContext(singleUserAuthorizer); if (twitterContext != null) { var searchResult = (from search in twitterContext.Search where search.Type == SearchType.Search && search.Query == "rain" select search).SingleOrDefault(); } } catch (Exception ex) { log.Error(string.Format("Twitter Authorization Failed, exiting the application: Class {0} Method {1} Exception {2}", nameof(MyTwitterModule), nameof(AuthenticateUser), ex.Message.ToString())); MessageBox.Show(Resources.TwitterAuthenticationError, Resources.TwitterAuthenticationErrorCaption, MessageBoxButton.OK, MessageBoxImage.Error); Application.Current.Shutdown(); } }
private static void ShowTweets(string i_sUser, int i_iCount) { var authTwitter = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = "4Kl5yOtTAl1tg6ItCtDFfhaxy", ConsumerSecret = "pUQgM6XnP2GjDIgNIH5LavVeCJEZ6CltnuSNQxvZE62z8J1j4V", OAuthToken = "120139909-ZdyoSXu8wsw1plYhVgQWB58ieCdv9p5tGoCxSw0t", //need this value from config.json file, OAuthTokenSecret = "wd0jneYWx4uOnLPfxJKEHZkz9fbqyGXYKTyAdUZKxLF20" } }; //await authTwitter.AuthorizeAsync(); var objTwitter = new TwitterContext(authTwitter); var statusTweets = from tweet in objTwitter.Status where tweet.Type == StatusType.User && tweet.ID == 120139909 && tweet.Count == i_iCount // ID for User select tweet; foreach (var tweet in statusTweets) { Console.WriteLine(tweet.Text); Console.WriteLine(); } Console.ReadLine(); }
private async Task <IAuthorizer> AuthAsync() { if (_authorizer == null) { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = "i4CpLM6hX3TuR2EGNvAfVOYxT", ConsumerSecret = "HUm1Vfp4Y1HhKg1hKQrypOHQyOuHohNrYuT6qU2spKS9rJ1YpN", OAuthToken = "314742868-8K7Fcv7KgaY3WXzr60MLQN9776BLD7z62iuHWkf2", OAuthTokenSecret = "vmPbZGBQ3wphMHUBM4bXkAW09axy0M8vcGurK1LH4oYli", AccessToken = "314742868-8K7Fcv7KgaY3WXzr60MLQN9776BLD7z62iuHWkf2", AccessTokenSecret = "vmPbZGBQ3wphMHUBM4bXkAW09axy0M8vcGurK1LH4oYli" } /* * CredentialStore = new InMemoryCredentialStore * { * ConsumerKey = "i4CpLM6hX3TuR2EGNvAfVOYxT", * ConsumerSecret = "HUm1Vfp4Y1HhKg1hKQrypOHQyOuHohNrYuT6qU2spKS9rJ1YpN", * OAuthToken = "314742868-8K7Fcv7KgaY3WXzr60MLQN9776BLD7z62iuHWkf2", * OAuthTokenSecret = "vmPbZGBQ3wphMHUBM4bXkAW09axy0M8vcGurK1LH4oYli" * } */ }; await auth.AuthorizeAsync(); _authorizer = auth; } return(_authorizer); }
private ITwitterContext CreateContext(TwitterCredentials credentials) { try { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = credentials.ConsumerKey, ConsumerSecret = credentials.ConsumerSecret, AccessToken = credentials.AccessToken, AccessTokenSecret = credentials.AccessTokenSecret } }; return(new TwitterContextWrapper(new TwitterContext(auth))); } catch (Exception e) { _eventTracker.TrackError( "TwitterContext", "Twitter context failed to initialize", new { exception = e }); throw; } }
public async Task SendTweetAsync(SendTweetMessage sendTweetMessage) { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = SettingsHelper.GetEnvironmentVariable("TwitterConsumerKey"), ConsumerSecret = SettingsHelper.GetEnvironmentVariable("TwitterConsumerSecret"), OAuthToken = SettingsHelper.GetEnvironmentVariable("TwitterOAuthToken"), OAuthTokenSecret = SettingsHelper.GetEnvironmentVariable("TwitterOAuthTokenSecret") } }; await auth.AuthorizeAsync(); var ctx = new TwitterContext(auth); var tweetMessage = BuildTweet(sendTweetMessage); if (sendTweetMessage.EventLocationLatitude > 0 && sendTweetMessage.EventLocationLongitude > 0) { await ctx.TweetAsync(tweetMessage, sendTweetMessage.EventLocationLatitude, sendTweetMessage.EventLocationLongitude, true); } else { await ctx.TweetAsync(tweetMessage); } }
public DataTable TTGetir(int WoeId) { DataTable Table = new DataTable(); Table.Columns.Add(); var auth = new SingleUserAuthorizer { Credentials = new SingleUserInMemoryCredentials { ConsumerKey = ConsumerKey, ConsumerSecret = ConsumerSecret, TwitterAccessToken = AccessToken, TwitterAccessTokenSecret = AccessTokenSecret } }; TwitterContext twitterContex = new TwitterContext(auth); var trends = (from trnd in twitterContex.Trends where trnd.Type == TrendType.Place && trnd.WoeID == WoeId // something other than 1 select trnd).ToList(); Table.Columns[0].ColumnName = trends.First().Locations.First().Name; trends.ForEach(trnd => Table.Rows.Add(trnd.Name)); return(Table); }
private void Authorizing() { Receive <TwitterContext>(twitterContext => { Become(() => Connected(twitterContext)); Stash.UnstashAll(); }); ReceiveAny(_ => Stash.Stash()); async Task <TwitterContext> GetTwitterContext() { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = _settings.Twitter.ConsumerKey, ConsumerSecret = _settings.Twitter.ConsumerSecret, AccessToken = _settings.Twitter.AccessTokenKey, AccessTokenSecret = _settings.Twitter.AccessTokenSecret, }, }; await auth.AuthorizeAsync(); return(new TwitterContext(auth)); } GetTwitterContext().PipeTo(Self); }
//######################################################################################################### protected void AuthorizeContext() { var credential = new SingleUserInMemoryCredentialStore(); try { using (StreamReader sr = new StreamReader(new FileStream("twitterKey.txt", FileMode.Open))) { credential.ConsumerKey = sr.ReadLine(); credential.ConsumerSecret = sr.ReadLine(); credential.AccessToken = sr.ReadLine(); credential.AccessTokenSecret = sr.ReadLine(); sr.Close(); } } catch (FileNotFoundException) { Console.WriteLine("트위터 키 파일을 찾을 수 없습니다."); } catch (EndOfStreamException) { Console.WriteLine("트위터 키 파일을 읽을 수 없습니다."); } var auth = new SingleUserAuthorizer { CredentialStore = credential, }; auth.AuthorizeAsync().Wait(); m_twitterCtx = new TwitterContext(auth); }
public static async Task ProcessTweet( [ServiceBusTrigger("scheduled-tweets", Connection = "ServiceBusConnection")] Message scheduledTweet, ILogger log) { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = Environment.GetEnvironmentVariable("TwitterAPIKey"), ConsumerSecret = Environment.GetEnvironmentVariable("TwitterAPISecret"), AccessToken = Environment.GetEnvironmentVariable("TwitterAccessToken"), AccessTokenSecret = Environment.GetEnvironmentVariable("TwitterAccessTokenSecret") } }; var twitterContext = new TwitterContext(auth); var tweetStatus = Encoding.UTF8.GetString(scheduledTweet.Body); try { await twitterContext.TweetAsync(tweetStatus); } catch (Exception ex) { log.LogError(ex, $"{nameof(twitterContext.TweetAsync)} failed"); } }
// GET: Tweet public async Task <ActionResult> Index() { var auth = new SingleUserAuthorizer { CredentialStore = new InMemoryCredentialStore { ConsumerKey = "aQBh039RRPgFa5n2Sq7tCehvK", ConsumerSecret = "rWLAY9WOJGBdl1Bn9tvbFVV27iZeRKOoK2pqXkJBrXYkhv4i4l", OAuthToken = "1159055105699848192-yGJreGEXLHhHktPIQuHiCfaoobGfzE", OAuthTokenSecret = "J0xqhBqZR1GisevDRxTxW7HrtnY1d8aecbukO7zBsOdVA" } }; var context = new TwitterContext(auth); var tweets = new List <TweetViewModel>(); var searchResponse = await (from search in context.Search where search.Type == SearchType.Search && search.Query == "kaas" select search) .SingleOrDefaultAsync(); if (searchResponse != null && searchResponse.Statuses != null) { searchResponse.Statuses.ForEach(tweet => tweets.Add(new TweetViewModel { User = tweet.User.ScreenNameResponse, Tweet = tweet.Text })); } return(View(tweets)); }
void UpdateImage(Bitmap bitmap) { MemoryStream stream = new MemoryStream(); bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); stream.Close(); var buffer = stream.GetBuffer(); var lines = File.ReadAllLines("auth.txt"); var auth = new SingleUserAuthorizer { Credentials = new SingleUserInMemoryCredentials { ConsumerKey = lines[0], ConsumerSecret = lines[1], TwitterAccessToken = lines[2], TwitterAccessTokenSecret = lines[3] } }; var context = new TwitterContext(auth); context.UpdateAccountImage(buffer, "ANTicGeneratorRocks.png", "png", true); }
public async Task <Status> PostTweetAsync(UIAlertController alert) { try { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = TwitterAPICredentials.ConsumerApiKey, ConsumerSecret = TwitterAPICredentials.ConsumerApiSecret, AccessToken = TwitterAPICredentials.AccessToken, AccessTokenSecret = TwitterAPICredentials.AccessTokenSecret, } }; var ctx = new TwitterContext(auth); string t = alert.TextFields[0].Text; var status = new Status(); if (t != null && t != "") { status = await ctx.TweetAsync(t); } return(status); } catch (Exception ex) { Console.Write("Task was canceled" + ex); return(null); } }
public override async Task <Result> Connect(OAuthTokenModel token) { try { SingleUserAuthorizer singleUserAuthorizer = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = TwitterService.ClientID, ConsumerSecret = ChannelSession.Services.Secrets.GetSecret("TwitterSecret"), AccessToken = token.accessToken, AccessTokenSecret = token.refreshToken, UserID = ulong.Parse(token.clientID), ScreenName = token.authorizationCode, } }; await singleUserAuthorizer.AuthorizeAsync(); this.authorizer = singleUserAuthorizer; return(await this.InitializeInternal()); } catch (Exception ex) { Logger.Log(ex); return(new Result(ex)); } }
internal static void QueryExpression() { SingleUserAuthorizer credentials = new SingleUserAuthorizer() { CredentialStore = new InMemoryCredentialStore() { ConsumerKey = "ConsumerKey", ConsumerSecret = "ConsumerSecret", OAuthToken = "OAuthToken", OAuthTokenSecret = "OAuthTokenSecret" } }; using (TwitterContext twitter = new TwitterContext(credentials)) { IQueryable <Search> source = twitter.Search; // Get source. IQueryable <List <Status> > query = from search in source where search.Type == SearchType.Search && search.Query == "LINQ" orderby search.SearchMetaData.Count select search.Statuses; // Define query. foreach (List <Status> search in query) // Execute query. { foreach (Status status in search) { Trace.WriteLine(status.Text); } } } }
public TwitterImporter(Assessment assessment, SocialMediaStat socialMediaStat, String loggedInName) { try { _assessment = assessment; _socialMediaStat = socialMediaStat; string name = _assessment.FacebookUsername.ToLower(); if (name.Contains("https") || name.Contains("twitter.com") || name.Contains("http")) { String[] splits = name.Split('/'); _twitterUsername = splits[splits.Length - 1]; } _loggedInName = loggedInName; Database db = new Database(); API token = db.apis.Where(x => x.Name == "TwitterToken").FirstOrDefault(); API tokenSecret = db.apis.Where(x => x.Name == "TwitterTokenSecret").FirstOrDefault(); var authorizer = new SingleUserAuthorizer { CredentialStore = new InMemoryCredentialStore { ConsumerKey = Properties.Resources._api_twitter_consumer_key, ConsumerSecret = Properties.Resources._api_twitter_consumer_secret, OAuthToken = token.Value, OAuthTokenSecret = tokenSecret.Value } }; _twitterContext = new TwitterContext(authorizer); } catch (Exception e) { } }
internal static void QueryExpression() { var credentials = new SingleUserAuthorizer() { CredentialStore = new InMemoryCredentialStore() { ConsumerKey = "YDgWzSxxBaLTT2eSWS6jLRQxd", ConsumerSecret = "XYZGuT04E93J2OtlJOEt7stnrM78dtPSJlQlL81C1O4JKoGbLP", OAuthToken = "881590855630508032-xeDEfO0prBkC6YGZKEkrzCSD0sOzbyW", OAuthTokenSecret = "GsrpjXIlvfWPO3rMSI258AsDGKBHTgvVkkUxiVj1OAqFp" } }; using (var twitter = new TwitterContext(credentials)) { IQueryable <Search> source = twitter.Search; // Get source. IQueryable <List <Status> > query = from search in source where search.Type == SearchType.Search && search.Query == "LINQ" orderby search.SearchMetaData.Count select search.Statuses; //Define query. foreach (var search in query) // Execute query. { foreach (Status status in search) { Trace.WriteLine(status.Text); } } } }
static void Main(string[] args) { var auth = new SingleUserAuthorizer { CredentialStore = new InMemoryCredentialStore { ConsumerKey = "Consumer Key", ConsumerSecret = "Consumer Key Secret", OAuthToken = "Access Token", OAuthTokenSecret = "Access Token Secret" } }; var twitterCtx = new TwitterContext(auth); Console.WriteLine("Enter the username whose tweets you want to see"); var userInput = Console.ReadLine(); Console.WriteLine("Loading Top 10 Tweets\n"); var tweets = (from tweet in twitterCtx.Status where tweet.Type == StatusType.User && tweet.ScreenName == userInput select tweet).Take(10); foreach (var tweet in tweets) { Console.WriteLine($"{tweet.User.Name} - {tweet.Text.Trim()}\n"); } Console.ReadLine(); }
private async static void GetTweets() { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = @"51WXplzDr3NHpU2aJlA8f8rmU", ConsumerSecret = @"UpT72NjZiWYXd9whjDES18Wc7dj4ngSEGv9yYn5Cg9UcnaoVm2", AccessToken = @"801059003791003648-aojSHBewwNwx4thqYnufEgj374q11mQ", AccessTokenSecret = @"sFrfW9OhxsWuSvZjsvahNVUBRVg1hGnhpMllpAQ8TSmea" } }; var twitterCtx = new TwitterContext(auth); var searchResponse = await (from search in twitterCtx.Search where search.Type == SearchType.Search && search.Query == "#andriitest2" select search) .SingleOrDefaultAsync(); if (searchResponse != null && searchResponse.Statuses != null) { searchResponse.Statuses.ForEach(tweet => Console.WriteLine( "User: {0}, Tweet: {1}", tweet.User.ScreenNameResponse, tweet.Text)); } }
public async Task <bool> Connect() { if (this.token != null) { try { SingleUserAuthorizer singleUserAuth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = TwitterService.ClientID, ConsumerSecret = ChannelSession.SecretManager.GetSecret("TwitterSecret"), AccessToken = this.token.accessToken, AccessTokenSecret = this.token.refreshToken, UserID = ulong.Parse(this.token.clientID), ScreenName = this.token.authorizationCode, } }; await singleUserAuth.AuthorizeAsync(); if (await this.InitializeInternal(singleUserAuth)) { return(true); } } catch (Exception ex) { Logger.Log(ex); } } try { PinAuthorizer pinAuth = new PinAuthorizer() { CredentialStore = new InMemoryCredentialStore { ConsumerKey = TwitterService.ClientID, ConsumerSecret = ChannelSession.SecretManager.GetSecret("TwitterSecret"), }, GoToTwitterAuthorization = pageLink => Process.Start(pageLink), GetPin = () => { while (string.IsNullOrEmpty(this.authPin)) { Task.Delay(1000).Wait(); } return(this.authPin); } }; await pinAuth.AuthorizeAsync(); this.authPin = null; return(await this.InitializeInternal(pinAuth)); } catch (Exception ex) { Logger.Log(ex); } return(false); }
public static List <Status> GetTweets(int max) { const int MaxTweetsToReturn = 200; // get the auth var auth = new SingleUserAuthorizer { CredentialStore = new InMemoryCredentialStore { ConsumerKey = ConfigurationManager.AppSettings["consumerkey"], ConsumerSecret = ConfigurationManager.AppSettings["consumersecret"], OAuthToken = ConfigurationManager.AppSettings["accessToken"], OAuthTokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"] } }; // get the context, query the last status var context = new TwitterContext(auth); var tweets = from tw in context.Status where tw.Type == StatusType.User && tw.Count == MaxTweetsToReturn select tw; // handle exceptions, twitter service might be down return(tweets.Take(max).ToList()); }
static ITwitterAuthorizer DoSingleUserAuth() { // validate that credentials are present //if (ConfigurationManager.AppSettings["twitterConsumerKey"].IsNullOrWhiteSpace() || // ConfigurationManager.AppSettings["twitterConsumerSecret"].IsNullOrWhiteSpace() || // ConfigurationManager.AppSettings["twitterOAuthToken"].IsNullOrWhiteSpace() || // ConfigurationManager.AppSettings["twitterAccessToken"].IsNullOrWhiteSpace()) //{ // Console.WriteLine("You need to set credentials in App.config/appSettings. Visit http://dev.twitter.com/apps for more info.\n"); // Console.Write("Press any key to exit..."); // Console.ReadKey(); // return null; //} // configure the OAuth object var auth = new SingleUserAuthorizer { Credentials = new InMemoryCredentials { ConsumerKey = myIRC.Properties.Settings.Default.twitterConsumerKey, ConsumerSecret = myIRC.Properties.Settings.Default.twitterConsumerSecret, OAuthToken = myIRC.Properties.Settings.Default.twitterOAuthToken, AccessToken = myIRC.Properties.Settings.Default.twitterAccessToken } }; // Remember, do not call authorize - you don't need it. // auth.Authorize(); return(auth); }
private IEnumerable <string> GetTweetsForSubject(string topic) { var configurationPackage = this.context.CodePackageActivationContext.GetConfigurationPackageObject("Config"); var accessToken = configurationPackage.Settings.Sections["UserSettings"].Parameters["AccessToken"].Value; var accessTokenSecret = configurationPackage.Settings.Sections["UserSettings"].Parameters["AccessTokenSecret"].Value; var consumerKey = configurationPackage.Settings.Sections["UserSettings"].Parameters["ConsumerKey"].Value; var consumerSecret = configurationPackage.Settings.Sections["UserSettings"].Parameters["ConsumerSecret"].Value; var authorizer = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, AccessToken = accessToken, AccessTokenSecret = accessTokenSecret } }; var twitterContext = new TwitterContext(authorizer); var searchResults = Enumerable.SingleOrDefault( from search in twitterContext.Search where (search.Type == SearchType.Search) && (search.Query == topic) && (search.Count == 100) select search); if ((searchResults != null) && (searchResults.Statuses.Count > 0)) { return(searchResults.Statuses.Select(status => status.Text)); } return(Enumerable.Empty <string>()); }
protected override Task ProcessRecordAsync() { if (OAuthToken == null) { throw new ArgumentNullException(nameof(OAuthToken)); } if (OAuthTokenSecret == null) { throw new ArgumentNullException(nameof(OAuthTokenSecret)); } if (ConsumerKey == null) { throw new ArgumentNullException(nameof(ConsumerKey)); } if (ConsumerSecret == null) { throw new ArgumentNullException(nameof(ConsumerSecret)); } var memoryCredentialStore = new InMemoryCredentialStore { ConsumerKey = ConsumerKey, ConsumerSecret = ConsumerSecret, OAuthToken = OAuthToken, OAuthTokenSecret = OAuthTokenSecret }; var authorizer = new SingleUserAuthorizer { CredentialStore = memoryCredentialStore }; return(authorizer.AuthorizeAsync().ToObservable() .HandleErrors(this).Select(_ => new TwitterContext(authorizer)) .WriteObject(this) .ToTask()); }
public async Task <Account> GetTwitterAccount(string userId, string screenName) { if (AnyTwitterAuthenticationSettingsAreNotSet()) { return(null); } var authTwitter = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = twitterAuthenticationSettings.Value.ConsumerKey, ConsumerSecret = twitterAuthenticationSettings.Value.ConsumerSecret, OAuthToken = twitterAuthenticationSettings.Value.OAuthToken, OAuthTokenSecret = twitterAuthenticationSettings.Value.OAuthSecret, UserID = ulong.Parse(userId), ScreenName = screenName } }; await authTwitter.AuthorizeAsync(); var twitterContext = new TwitterContext(authTwitter); //VERY important you explicitly keep the "== true" part of comparison. ReSharper will prompt you to remove this, and if it does, the query will not work var account = await(from acct in twitterContext.Account where (acct.Type == AccountType.VerifyCredentials) && (acct.IncludeEmail == true) select acct).SingleOrDefaultAsync(); return(account); }
/* Returns the latest nth (the tweet.Count) tweets in JSON. (with parameter of last shown tweet) */ public async Task <List <TwitterStatus> > GetTweetsByHandleNMax(string handle, string maxIdStr, int pgSize = 10) { /* Gets the MaxID from the database. */ ulong storedMaxId = 0; if (maxIdStr.Length > 0) { storedMaxId = GetMaxId(maxIdStr); } List <TwitterStatus> tweets = null; AccountSetting setting = _settingSrv.GetSettingByHandle(handle, Enums.AccountSettings.TwitterToken); if (setting != null) { var key = "twitter_" + setting.Value + "_pg_" + maxIdStr; if (!_cacheService.Contains(key)) { SingleUserAuthorizer auth = SetAuthInformation(); TwitterContext context = new TwitterContext(auth); tweets = await ( from tweet in context.Status where tweet.Type == StatusType.User && tweet.ScreenName == setting.Value && tweet.Count == pgSize && tweet.MaxID == ulong.Parse(maxIdStr) - 1 && tweet.IncludeMyRetweet == false && tweet.IncludeRetweets == false select mapTweets.Map <Status, TwitterStatus>(tweet) ) .ToListAsync <TwitterStatus>(); /* Gets the statusID of the last tweet. */ decimal maxId = 0; if (tweets.Count > 0) { maxId = tweets.LastOrDefault().StatusID; } DeleteMaxId(); InsertMaxId(maxId); _cacheService.Add(key, tweets, new DateTimeOffset(DateTime.Now.AddDays(1))); } else { tweets = _cacheService.Get <List <TwitterStatus> >(key); } } return(tweets); }
/// <summary> /// Authorizes against Twitter. /// </summary> /// <returns></returns> private async Task <IAuthorizer> AuthorizeAsync() { ServiceEventSource.Current.ServiceMessage(this, "Twitter: Authorizing"); try { #region string consumerKey, consumerSecret, accessToken, accessTokenSecret = ... string consumerKey = Environment.GetEnvironmentVariable("TweeterConsumerKey"); string consumerSecret = Environment.GetEnvironmentVariable("TweeterConsumerSecret"); string accessToken = Environment.GetEnvironmentVariable("TwitterAccessToken"); string accessTokenSecret = Environment.GetEnvironmentVariable("TwitterAccessTokenSecret"); if (string.IsNullOrEmpty(consumerKey)) { var config = this.ServiceInitializationParameters .CodePackageActivationContext .GetConfigurationPackageObject("Config") .Settings.Sections["TwitterCredentials"] .Parameters; consumerKey = config["TweeterConsumerKey"]?.Value; consumerSecret = config["TweeterConsumerSecret"]?.Value; accessToken = config["TwitterAccessToken"]?.Value; accessTokenSecret = config["TwitterAccessTokenSecret"]?.Value; } #endregion // string consumerKey, consumerSecret, accessToken, accessTokenSecret = ... var auth = new SingleUserAuthorizer() { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, AccessToken = accessToken, AccessTokenSecret = accessTokenSecret } }; await auth.AuthorizeAsync(); ServiceEventSource.Current.ServiceMessage(this, "Twitter: Authorized"); return(auth); } #region Exception Handling catch (Exception ex) { var id = Constants.Singleton; var proxy = ActorProxy.Create <IImdbFaults>(id); await proxy.ReportError($"Twitter Authorization failed: {ex}"); ServiceEventSource.Current.ServiceHostInitializationFailed(ex); throw; } #endregion // Exception Handling }
private async Task DoSearchAsync(string query, byte count = 25) { //var response = await GetToken("[Get from twitter App area]", "[Get from twitter App area]"); //var msg = response.Content; Tweets.Clear(); wvStream.NavigateToString(""); var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = "", ConsumerSecret = "", AccessToken = "", AccessTokenSecret = "" } }; var twitterCtx = new TwitterContext(auth); var searchResponse = await (from search in twitterCtx.Search where search.Type == SearchType.Search && search.Query == "\"" + query + "\"" && search.Count == count select search) .SingleOrDefaultAsync(); if (searchResponse != null && searchResponse.Statuses != null) { foreach (var tweet in searchResponse.Statuses) { var newTweet = new Tweet() { Name = tweet.User.Name, NameAt = "@" + tweet.User.ScreenNameResponse, TextRaw = tweet.Text, TextHtml = ParseForHtml(tweet.Text), TextDateTime = tweet.CreatedAt, //AvatarUrl = tweet.User.ProfileImageUrl }; if (!(newTweet.NameAt.Contains("@KState"))) { continue; } Tweets.Add(newTweet); } } //using binding to populate webview UI HtmlBindingHelper.SetTag(wvStream, Tweets.ToList <Tweet>()); }
/// <summary> /// Get mentions in tweet /// </summary> /// <param name="input"></param> /// <param name="logger"></param> /// <returns></returns> public static GetTweetTaskOutput getMentions(GetTweetsTaskInput input, ILogger logger) { logger.LogInformation($"Getting mention. Method {nameof(getMentions)}, Time: {DateTime.Now}"); GetTweetTaskOutput output = new GetTweetTaskOutput() { IsTweetAvailable = false }; try { var auth = new SingleUserAuthorizer() { CredentialStore = new SingleUserInMemoryCredentialStore() { ConsumerKey = input.ConsumerKey, ConsumerSecret = input.ConsumerSecret, AccessToken = input.AccessToken, AccessTokenSecret = input.AccessTokenSecret }, }; auth.AuthorizeAsync().Wait(); var twitterCtx = new TwitterContext(auth); //var tweets = // await // (from tweet in twitterCtx.Status // where tweet.Type == StatusType.Mentions && // tweet.Count == input.Count // select tweet) // .ToListAsync(); var tweets = (from t in twitterCtx.Status where t.Type == StatusType.Mentions && t.Count == input.Count select t).ToList(); foreach (var tweet in tweets) { output.LatestTweetId = tweet.StatusID.ToString(); logger.LogInformation($"Mention Id: {tweet.StatusID}"); output.IsTweetAvailable = true; } logger.LogInformation($"Exit method {nameof(getMentions)}"); //Task.Delay(15000).Wait(); } catch (Exception ex) { logger.LogWarning($"{ex.Message}"); } return(output); }
public TwitterClient(SingleUserInMemoryCredentialStore credentials) { var auth = new SingleUserAuthorizer { CredentialStore = credentials }; context = new TwitterContext(auth); }
/// <summary> /// 搜索本人的TIMELINE /// https://github.com/JoeMayo/LinqToTwitter/wiki/Querying-the-Home-Timeline /// </summary> /// <param name="authuser"></param> /// <param name="mintid"></param> /// <param name="retid"></param> /// <param name="maxcount"></param> /// <returns></returns> public static List <Status> GetHomeTL(SingleUserAuthorizer authuser, ulong mintid, out ulong retid, int maxcount = 500) { if (mintid < MINTWITTERID) { mintid = MINTWITTERID; } var twitterCtx = AuthTwitterContext(authuser); retid = mintid; var rslist = (from tweet in twitterCtx.Status where tweet.Type == StatusType.Home && tweet.Count == 200 && tweet.SinceID == mintid select tweet) .ToList(); while (rslist.Count < maxcount && rslist.Count > 0) { if (rslist.Min(st => st.StatusID) <= mintid) { break; } retid = rslist.Max(st => st.StatusID); ulong maxid = rslist.Min(st => st.StatusID) - 1; Thread.Sleep(10 * 1000); var searchResponse = (from tweet in twitterCtx.Status where tweet.Type == StatusType.Home && tweet.Count == 200 && tweet.SinceID == mintid && tweet.MaxID == maxid select tweet) .ToList(); if (searchResponse != null && searchResponse.Count > 0) { rslist.AddRange(searchResponse); } else { break; } } return(rslist); }