public User(string pin) { var token = TwitterClient.Current.Session.GetTokensAsync(pin).Result; TwitterKeys.SaveTokens(token); Initialize(token); }
public TwitterKeys Get() { TwitterKeys keys = null; if (!File.Exists(file)) { keys = new TwitterKeys { }; Save(keys); return(keys); } keys = null; StreamReader sr = null; try { sr = new StreamReader(file); var str = sr.ReadToEnd(); var serializer = new JavaScriptSerializer(); keys = serializer.Deserialize <TwitterKeys>(str); } finally { sr.Close(); sr.Dispose(); sr = null; } return(keys); }
static void ConfigureServices(HostBuilderContext context, IServiceCollection services) { services.AddScoped <ILoadApplicationCredentials, EnvironmentVariablesKeysLoader>(); TwitterKeys keys = services.BuildServiceProvider() .GetRequiredService <ILoadApplicationCredentials>() .Load(); services.AddSingleton(keys); services.AddScoped <OmniScraperContext>(); services.AddScoped <ITwitterRepository, LinqToTwitterRepository>(); services.AddScoped <TweetProcessingService>(); services.Configure <TweetProcessorSettings>(context.Configuration.GetSection("TweetProcessorSettings")); services.AddDbContext <OmniscraperDbContext>((options) => { options.UseNpgsql(context.Configuration.GetConnectionString("Postgres")); options.UseSnakeCaseNamingConvention(); }); services.AddScoped <IScraperRepository, ScraperRepository>(); services.AddHostedService <TweetListeningBackgroundService>(); services.AddLogging(); services.AddScoped <TwitterContentHandlerFactory>(); }
private static void checkHasSetUserCred() { if (hasSetUserCred == false) { Auth.SetUserCredentials(TwitterKeys.getConsumerKey(), TwitterKeys.getConsumerKeySecret(), TwitterKeys.getAccessToken(), TwitterKeys.getAccessTokenSecret()); hasSetUserCred = true; } }
public User() { var data = RealmHelper.Instance.All <UserData>().ToList().FirstOrDefault(x => x.Current); if (data != null) { Initialize(TwitterKeys.GetTokens(data.Id)); } }
public static Client CreateClient(this TwitterKeys keys) { var oauth = new Oauth( keys.ConsumerKey, keys.ConsumerSecret, keys.AccessToken, keys.AccessTokenSecret); return(new Client(oauth)); }
public TwitterKeys Load() { var keys = new TwitterKeys { ConsumerKey = GetValue(ConsumerKeyName), ConsumerSecret = GetValue(ConsumerSecretName), AccessToken = GetValue(AccessTokenName), AccessTokenSecret = GetValue(AccessTokenSecretName) }; return(keys); }
IAuthorizer ApplicationAuthorizer(TwitterKeys keys) { var auth = new SingleUserAuthorizer() { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = keys.ConsumerKey, ConsumerSecret = keys.ConsumerSecret, AccessToken = keys.AccessToken, AccessTokenSecret = keys.AccessTokenSecret }, }; return(auth); }
public void Save(TwitterKeys site) { StreamWriter sw = null; try { sw = new StreamWriter(file); var serializer = new JavaScriptSerializer(); var str = serializer.Serialize(site); sw.Write(str); sw.Flush(); } finally { sw.Close(); sw.Dispose(); sw = null; } }
static void AuthorizeTwitterAccess_UsingOutOfBandPincode() { // Get Twitter API keys from file (don't want the secret parts hardcoded in public repository TwitterKeys keys = ReadKeys(); // Configure OAuth1 with the stuff it needs for it's magic OAuth1Settings settings = new OAuth1Settings { ConsumerKey = keys.consumer_key, ConsumerSecrect = keys.consumer_secret, RequestTokenUrl = new Uri(Session.BaseUri, TwitterApi.OAuthRequestTokenPath), AuthorizeUrl = new Uri(Session.BaseUri, TwitterApi.OAuthAuthorizePath), AccessTokenUrl = new Uri(Session.BaseUri, TwitterApi.OAuthAccessTokenPath), CallbackUrl = "oob" // oob = Out Of Band }; Session.OAuth1Configure(settings); // Attach a logger after settings has been assigned (use debugger for breakpoints inside it) Session.OAuth1Logger(new OAuth1Logger()); // Get temporary credentials from Twitter (request token) and remember it internally OAuth1Token requestToken = Session.OAuth1GetRequestToken(); // Ask user to authorize use of the request token Console.WriteLine("Now opening a browser with autorization info. Please follow instructions there."); Request authorizationRequest = Session.Bind(TwitterApi.OAuthAuthorizePath, requestToken); Process.Start(authorizationRequest.Url.AbsoluteUri); Console.WriteLine("Please enter Twitter pincode: "); string pincode = Console.ReadLine(); if (!string.IsNullOrWhiteSpace(pincode)) { // Get access credentials from Twitter Session.OAuth1GetAccessTokenFromRequestToken(pincode); } }
public OmniScraperContext(TwitterKeys keys) { context = new TwitterContext(ApplicationAuthorizer(keys)); }
protected override void OnElementChanged(ElementChangedEventArgs <Page> e) { base.OnElementChanged(e); var activity = this.Context as Android.App.Activity; OAuth2Authenticator auth2 = null; OAuth1Authenticator auth1 = null; IKeys keys = null; var authPage = Element as AuthorizePage; switch (authPage.Service) { case LoginServices.Facebook: keys = new FacebookKeys(); auth2 = new OAuth2Authenticator( clientId: keys.ClientId, scope: keys.Scope, authorizeUrl: new Uri(keys.AuthorizeUrl), redirectUrl: new Uri(keys.RedirectUrl)); break; case LoginServices.Twitter: keys = new TwitterKeys(); auth1 = new OAuth1Authenticator( consumerKey: keys.ConsumerKey, consumerSecret: keys.ConsumerSecret, requestTokenUrl: new Uri(keys.RequestTokenUrl), authorizeUrl: new Uri(keys.AuthorizeUrl), accessTokenUrl: new Uri(keys.AccessTokenUrl), callbackUrl: new Uri(keys.CallbackUrl)); break; default: throw new Exception("Service " + authPage.Service + " not yet supported"); } if (auth2 != null) { auth2.Completed += async(sender, eventArgs) => { if (eventArgs.IsAuthenticated) { AccountStore.Create().Save(eventArgs.Account, authPage.Service.ToString()); } await authPage.Navigation.PopAsync(); }; activity.StartActivity(auth2.GetUI(activity)); } if (auth1 != null) { auth1.Completed += async(sender, eventArgs) => { if (eventArgs.IsAuthenticated) { AccountStore.Create().Save(eventArgs.Account, authPage.Service.ToString()); } await authPage.Navigation.PopAsync(); }; activity.StartActivity(auth1.GetUI(activity)); } }
public static async Task Can_Authenticate_With_OAuth_Async_With_Callback(TwitterKeys twitterKeys) { Console.WriteLine("OAuth test with callback"); var baseUrl = new Uri("https://api.twitter.com"); var client = new RestClient(baseUrl) { Authenticator = OAuth1Authenticator.ForRequestToken( twitterKeys.ConsumerKey, twitterKeys.ConsumerSecret, "https://restsharp.dev" ) }; var request = new RestRequest("oauth/request_token"); var response = await client.ExecuteAsync(request); Assert.NotNull(response); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var qs = HttpUtility.ParseQueryString(response.Content); var oauthToken = qs["oauth_token"]; var oauthTokenSecret = qs["oauth_token_secret"]; Assert.NotNull(oauthToken); Assert.NotNull(oauthTokenSecret); request = new RestRequest("oauth/authorize?oauth_token=" + oauthToken); var url = client.BuildUri(request) .ToString(); Console.WriteLine($"Open this URL in the browser: {url} and complete the authentication."); Console.Write("Enter the verifier: "); var verifier = Console.ReadLine(); request = new RestRequest("oauth/access_token"); client.Authenticator = OAuth1Authenticator.ForAccessToken( twitterKeys.ConsumerKey, twitterKeys.ConsumerSecret, oauthToken, oauthTokenSecret, verifier ! ); response = await client.ExecuteAsync(request); Assert.NotNull(response); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); qs = HttpUtility.ParseQueryString(response.Content); oauthToken = qs["oauth_token"]; oauthTokenSecret = qs["oauth_token_secret"]; Assert.NotNull(oauthToken); Assert.NotNull(oauthTokenSecret); request = new RestRequest("1.1/account/verify_credentials.json"); client.Authenticator = OAuth1Authenticator.ForProtectedResource( twitterKeys.ConsumerKey, twitterKeys.ConsumerSecret, oauthToken, oauthTokenSecret ); response = await client.ExecuteAsync(request); Console.WriteLine($"Code: {response.StatusCode}, response: {response.Content}"); }
public User(long userId) { Initialize(TwitterKeys.GetTokens(userId)); }
public void SaveTwitterKeys(TwitterKeys keys) { _dal.TwitterKeysProvider.Save(keys); }
public OAuthController(IOptions <TwitterKeys> twitterKeys) { this.twitterKeys = twitterKeys.Value; }