private void setOAuth2ParametersWithConfigSettings() { oAuth2Parameters = new OAuth2Parameters(); oAuth2Parameters.ClientId = ConfigurationManager.AppSettings["GoogleClientID"]; oAuth2Parameters.ClientSecret = ConfigurationManager.AppSettings["GoogleClientSecret"]; oAuth2Parameters.Scope = ConfigurationManager.AppSettings["GoogleScope"]; }
/// <summary> /// This console application demonstrates the usage of OAuth 2.0 with the Google Apps APIs. /// </summary> /// <param name="args">Command-line arguments: args[0] is /// the client ID, args[1] is the client secret, args[2] is domain name. /// </param> public static void Main(string[] args) { if (args.Length != 3) { Console.WriteLine("Syntax: OAuth2Demo <client_id> <client_secret> <domain>"); } else { clientId = args[0]; clientSecret = args[1]; domain = args[2]; OAuth2Parameters parameters = new OAuth2Parameters() { ClientId = clientId, ClientSecret = clientSecret, RedirectUri = redirectUri, Scope = scopes }; string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); Console.WriteLine("Authorize URI: " + url); parameters.AccessCode = Console.ReadLine(); OAuthUtil.GetAccessToken(parameters); // Testing OAuth 2.0 with a Request-based library RunContactsSample(parameters); // Testing OAuth 2.0 with a Service-based library RunGroupsSample(parameters, domain); } }
public static OAuth2Parameters GetOAuthParameter() { var useCloud = true; string CLIENT_ID = string.Empty; string CLIENT_SECRET = string.Empty; string REDIRECT_URI = string.Empty; string SCOPE = "https://spreadsheets.google.com/feeds https://docs.google.com/feeds"; if (useCloud) { //forefront.azurewebsites.net ClientID CLIENT_ID = "897989995139-cq0f3hsc7bkqvrcff9dnchr1k01e87fn.apps.googleusercontent.com"; CLIENT_SECRET = "_vp2uF9m8HK9wFHAxx-gJsN4"; REDIRECT_URI = "http://forefront.azurewebsites.net/oauthcallback"; } else { //localhost ClientID CLIENT_ID = "897989995139.apps.googleusercontent.com"; CLIENT_SECRET = "pTtKH8MQCPhCmk1PrkASSUXa"; REDIRECT_URI = "http://localhost:49522/oauthcallback"; } OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = CLIENT_ID; parameters.ClientSecret = CLIENT_SECRET; parameters.RedirectUri = REDIRECT_URI; parameters.Scope = SCOPE; return parameters; }
public async Task ReadContactsAsync() { var secrets = Paths.BinDir.CatDir("client_secret_292564741141-6fa0tqv21ro1v8s28gj4upei0muvuidm.apps.googleusercontent.com.json").Read(GoogleClientSecrets.Load).Secrets; var credentialProvider = Sidi.CredentialManagement.Factory.GetCredentialProvider("https://www.google.com/m8/feeds"); var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( secrets, new string[] { "https://www.google.com/m8/feeds" }, credentialProvider.GetCredential().UserName, CancellationToken.None, new FileDataStore("Contacts2")); var parameters = new Google.GData.Client.OAuth2Parameters() { ClientId = secrets.ClientId, ClientSecret = secrets.ClientSecret, RedirectUri = redirectUri, Scope = "https://www.google.com/m8/feeds", AccessToken = credential.Token.AccessToken, RefreshToken = credential.Token.RefreshToken, }; var contacts = new ContactsRequest(new RequestSettings("hagen", parameters)); var q = new FeedQuery("https://www.google.com/m8/feeds/contacts/default/full") { Query = "Grimme" }; var feed = contacts.Get <Contact>(q); log.Info(feed.Entries.ListFormat()); }
public static void InitAuthenticate() { string clientId = GoogleDataSettings.Instance.OAuth2Data.client_id; string clientSecret = GoogleDataSettings.Instance.OAuth2Data.client_secret; string accessCode = GoogleDataSettings.Instance._AccessCode; // OAuth2Parameters holds all the parameters related to OAuth 2.0. OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = clientId; parameters.ClientSecret = clientSecret; parameters.RedirectUri = REDIRECT_URI; // Retrieves the Authorization URL parameters.Scope = SCOPE; parameters.AccessType = "offline"; // IMPORTANT and was missing in the original parameters.TokenType = TOKEN_TYPE; // IMPORTANT and was missing in the original string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); Debug.Log(authorizationUrl); Debug.Log("Please visit the URL above to authorize your OAuth " + "request token. Once that is complete, type in your access code to " + "continue..."); parameters.AccessCode = accessCode; if (string.IsNullOrEmpty(parameters.AccessCode)) { Application.OpenURL(authorizationUrl); } }
public async Task <IList <Contact> > ReadContactsAsync(string query) { var secrets = Paths.BinDir.CatDir("client_secret_292564741141-6fa0tqv21ro1v8s28gj4upei0muvuidm.apps.googleusercontent.com.json").Read(GoogleClientSecrets.Load).Secrets; var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( secrets, new string[] { "https://www.google.com/m8/feeds" }, credentialProvider.GetCredential().UserName, CancellationToken.None, null); var parameters = new Google.GData.Client.OAuth2Parameters() { ClientId = secrets.ClientId, ClientSecret = secrets.ClientSecret, RedirectUri = redirectUri, Scope = scope, AccessToken = credential.Token.AccessToken, RefreshToken = credential.Token.RefreshToken, }; var contacts = new ContactsRequest(new RequestSettings("hagen", parameters)); var q = new FeedQuery("https://www.google.com/m8/feeds/contacts/default/full") { Query = query }; var feed = contacts.Get <Contact>(q); var entries = feed.Entries.ToList(); return(entries); }
/// <summary> /// Exchanges the user-authorized request token for an OAuth 2.0 access token. /// When successful, updates the OAuthParameter instance passed as parameter by setting /// AccessToken, RefreshToken and TokenExpiry. /// </summary> /// <param name="queryString">The query string containing the access code</param> /// <param name="parameters">The OAuth 2.0 parameters</param> public static void GetAccessToken(String queryString, OAuth2Parameters parameters) { //split results and update parameters SortedDictionary <string, string> responseValues = OAuthBase.GetQueryParameters(queryString); parameters.AccessCode = responseValues[OAuthBase.OAuth2AccessCode]; GetAccessToken(parameters); }
/// <summary> /// New Method To get Worksheet /// </summary> /// <returns></returns> public WorksheetEntry GetWorksheet(OAuth2Parameters parameters, string IntegrationName, string SpreadSheetURI, SpreadsheetsService service) { SpreadsheetQuery query = new SpreadsheetQuery(SpreadSheetURI); SpreadsheetFeed feed = service.Query(query); SpreadsheetEntry spreadsheet = (SpreadsheetEntry)feed.Entries[0]; WorksheetFeed wsFeed = spreadsheet.Worksheets; WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[0]; return worksheet; }
public GDEOAuth() { oauth2Params = new OAuth2Parameters(); oauth2Params.ClientId = CLIENT_ID; oauth2Params.ClientSecret = CLIENT_SECRET; oauth2Params.RedirectUri = REDIRECT_URI; oauth2Params.Scope = SCOPE; }
public string GetAuthURL() { OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = Config.CLIENT_ID; parameters.ClientSecret = Config.CLIENT_SECRET; parameters.RedirectUri = REDIRECT_URI; parameters.Scope = SCOPE; return OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); }
public OAuth2Parameters GetOAuth2Parameter(string refreshToken) { OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = Config.CLIENT_ID; parameters.ClientSecret = Config.CLIENT_SECRET; parameters.RefreshToken = refreshToken; OAuthUtil.RefreshAccessToken(parameters); return parameters; }
public static void initialize() { try { // OAuth2Parameters holds all the parameters related to OAuth 2.0. logonParameters = new OAuth2Parameters(); // Set your OAuth 2.0 Client Id (which you can register at // https://code.google.com/apis/console). logonParameters.ClientId = Constants.CLIENT_ID; // Set your OAuth 2.0 Client Secret, which can be obtained at // https://code.google.com/apis/console. logonParameters.ClientSecret = Constants.CLIENT_SECRET; // Set your Redirect URI, which can be registered at // https://code.google.com/apis/console. logonParameters.RedirectUri = Constants.REDIRECT_URI; // Set the scope for this particular service. logonParameters.Scope = Constants.SCOPE; // Get the authorization code logonParameters.AccessCode = frmAuthCode.getAuthCode(logonParameters); OAuthUtil.GetAccessToken(logonParameters); string accessToken = logonParameters.AccessToken; logger.Debug("OAuth Access Token: " + accessToken); // Initialize the variables needed to make the request GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory(null, Constants.APPLICATION_NAME, logonParameters); service = new SpreadsheetsService(Constants.APPLICATION_NAME); service.RequestFactory = requestFactory; // Instantiate a SpreadsheetQuery object to retrieve spreadsheets. SpreadsheetQuery query = new SpreadsheetQuery(); // Make a request to the API and get all spreadsheets. feed = service.Query(query); // Iterate through all of the spreadsheets returned foreach (SpreadsheetEntry entry in feed.Entries) { // Print the title of this spreadsheet to the screen logger.Debug(String.Format("Title: {0}, URI: {1}", entry.Title.Text, entry.Id.Uri.ToString())); } isInitialized = true; } catch (Exception e) { MessageBox.Show("Could not Authenticate - shutting down."); logger.Error("Could not Authenticate", e); System.Environment.Exit(-1); } }
public ActionResult RedirectToAuthenticate(OAuth2Parameters model) { GdataAuth.Storage.Parameters = model; var u = HttpContext.Request.Url; GdataAuth.Storage.Parameters.RedirectUri = string.Format("{0}://{1}/GdataAuth/Authenticate", u.Scheme, u.Authority); GdataAuth.Storage.Parameters.State = ApplicationId.ToString(); return Redirect(GdataAuth.OAuth2AuthorizationUrl()); }
public static String getAuthCode(OAuth2Parameters parameters) { MessageBox.Show("About to launch a browser to get the Authorization Code. Please copy and paste the code given into the applciation."); string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); logger.Debug("Auth URL: " + authorizationUrl); Process.Start(authorizationUrl); frmAuthCode frm = new frmAuthCode(); frm.ShowDialog(); return frm.txtAuthCode.Text; }
public string AuthWithAccessCode(string accessCode) { OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = Config.CLIENT_ID; parameters.ClientSecret = Config.CLIENT_SECRET; parameters.RedirectUri = REDIRECT_URI; parameters.Scope = SCOPE; parameters.AccessCode = accessCode; OAuthUtil.GetAccessToken(parameters); return parameters.RefreshToken; }
public SpreadsheetManager( string userName, string password, string applicationName, string clientId, string clientSecret, string redirectUri, string scope ) { oAuthParams = new OAuth2Parameters() { ClientId = clientId, ClientSecret = clientSecret, RedirectUri = redirectUri, Scope = scope }; _spreadsheetsService = new SpreadsheetsService( applicationName ); _spreadsheetsService.setUserCredentials( userName, password ); }
void printDocumentList(OAuth2Parameters parameters) { GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory(null, "MyDocumentsListIntegration-v1", parameters); DocumentsService service = new DocumentsService("MyDocumentsListIntegration-v1"); service.RequestFactory = requestFactory; DocumentsListQuery query = new DocumentsListQuery(); DocumentsFeed feed = service.Query(query); foreach (DocumentEntry entry in feed.Entries) { Console.WriteLine(entry.Title.Text); } Console.ReadKey(); }
string getOauthToken(OAuth2Parameters parameters) { string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); Console.WriteLine(authorizationUrl); Console.WriteLine("Please visit the URL above (if it wasn't opened automatically) " + "to authorize your OAuth request token. Once that is complete, type in your access code to " + "continue..."); Process.Start(authorizationUrl); parameters.AccessCode = Console.ReadLine(); OAuthUtil.GetAccessToken(parameters); string accessToken = parameters.AccessToken; return accessToken; }
public void GetAccessCode() { OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = CLIENT_ID; parameters.ClientSecret = CLIENT_SECRET; parameters.RedirectUri = REDIRECT_URI; parameters.Scope = SCOPE; string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); Application.OpenURL (authorizationUrl); }
public static GOAuth2RequestFactory RefreshAuthenticate() { OAuth2Parameters parameters = new OAuth2Parameters(){ RefreshToken = "1/izZtIUYGnQHbfSD1X9SQ0drTZR4ahvRa0Pt9en9rpjw", AccessToken = "ya29.wQG6pqn3GS4msxBtrBGcI03T1wga2kbu6Ibe6xjOYKn6PEUOeGKqTA0NTkkd9tI8OxYY", ClientId = _clientID, ClientSecret = _client_secret, Scope = "https://www.googleapis.com/auth/youtube.readonly", AccessType = "offline", TokenType = "refresh", }; string authUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); return new GOAuth2RequestFactory(null, "evilspeculator", parameters); }
public string StartLogin() { _parameters = new OAuth2Parameters(); _parameters.ClientId = CLIENT_ID; _parameters.ClientSecret = CLIENT_SECRET; _parameters.RedirectUri = REDIRECT_URI; _parameters.Scope = SCOPE; //parameters.ApprovalPrompt = "force"; _parameters.TokenExpiry = DateTime.MaxValue; _parameters.AccessType = "offline"; string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(_parameters); HttpContext.Current.Response.Redirect(authorizationUrl); return authorizationUrl; }
private OAuth2Parameters CreateOAuth2Parameters(IAuthorizationState state) { var parameters = new OAuth2Parameters() { ClientId = GoogleSyncSettings.ClientIdentifier, ClientSecret = GoogleSyncSettings.ClientSecret, RedirectUri = GoogleSyncSettings.RedirectUri, RefreshToken = state.RefreshToken, Scope = GoogleSyncSettings.ContactScope + " " + GoogleSyncSettings.ContactGroupScope }; OAuthUtil.RefreshAccessToken(parameters); return parameters; }
/// <summary> /// Generate the request body for refreshing an access token. /// </summary> /// <param name="parameters">The OAuth 2.0 parameters</param> public static String GetRefreshAccessTokenRequestBody(OAuth2Parameters parameters) { if (string.IsNullOrEmpty(parameters.RefreshToken)) { throw new ArgumentNullException("refresh_token"); } StringBuilder sb = new StringBuilder(); sb.AppendFormat("{0}={1}", OAuth2GrantType, "refresh_token"); sb.AppendFormat("&{0}={1}", OAuth2ClientId, EncodingPerRFC3986(parameters.ClientId)); sb.AppendFormat("&{0}={1}", OAuth2ClientSecret, EncodingPerRFC3986(parameters.ClientSecret)); sb.AppendFormat("&{0}={1}", OAuth2RefreshToken, EncodingPerRFC3986(parameters.RefreshToken)); return sb.ToString(); }
public static GOAuth2RequestFactory RefreshAuthenticate() { OAuth2Parameters parameters = new OAuth2Parameters() { RefreshToken = _RefreshToken, AccessToken = _AccessToken, ClientId = _ClientId, ClientSecret = _ClientSecret, Scope = "https://www.googleapis.com/auth/drive https://spreadsheets.google.com/feeds", AccessType = "offline", TokenType = "refresh" }; string authUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); return new GOAuth2RequestFactory("spreadsheet", "MySpreadsheetIntegration-v1", parameters); }
public Uri GetOAuthCalculatedAuthorizationUri(Uri callbackUri) { var apiSecret = ConfigurationManager.AppSettings["VideoApiSecret"] ?? "nnb4e_-c3TSKzf8kmwrgp5wr"; var parameters = new OAuth2Parameters { ClientId = _apiKey, ClientSecret = apiSecret, Scope = "http://gdata.youtube.com", }; var authenticator = new OAuth2Authenticator("BandApp", parameters); return authenticator.ApplyAuthenticationToUri(callbackUri); }
// API KEY etc. config here: https://console.developers.google.com/project public static SpreadsheetsService GetSpreadsheetsService(string sAppName, string sClientId, string sGoogleAccessToken) { var zAuthParameters = new OAuth2Parameters() { ClientId = sClientId, Scope = SCOPE, AccessToken = sGoogleAccessToken }; var spreadsheetsService = new SpreadsheetsService(sAppName); spreadsheetsService.RequestFactory = new GOAuth2RequestFactory(null, sAppName, zAuthParameters); return spreadsheetsService; }
/// <summary> /// Generate the request body for exchanging an access code for an access token. /// </summary> /// <param name="parameters">The OAuth 2.0 parameters</param> public static String GetExchangeAccessCodeRequestBody(OAuth2Parameters parameters) { if (string.IsNullOrEmpty(parameters.AccessCode)) { throw new ArgumentNullException("access_code"); } StringBuilder sb = new StringBuilder(); sb.AppendFormat("{0}={1}", OAuth2GrantType, "authorization_code"); sb.AppendFormat("&{0}={1}", OAuth2ClientId, EncodingPerRFC3986(parameters.ClientId)); sb.AppendFormat("&{0}={1}", OAuth2ClientSecret, EncodingPerRFC3986(parameters.ClientSecret)); sb.AppendFormat("&{0}={1}", OAuth2AccessCode, EncodingPerRFC3986(parameters.AccessCode)); sb.AppendFormat("&{0}={1}", OAuth2RedirectUri, EncodingPerRFC3986(parameters.RedirectUri)); return sb.ToString(); }
OAuth2Parameters getParameters() { OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = ConfigurationManager.AppSettings.Get("ClientId"); Console.WriteLine(parameters.ClientId); parameters.ClientSecret = ConfigurationManager.AppSettings.Get("ClientSecret"); parameters.Scope = ConfigurationManager.AppSettings.Get("Scope"); parameters.RedirectUri = ConfigurationManager.AppSettings.Get("RedirectURI"); if (!(hasOauthToken())) { Properties.Settings.Default.OAuthToken = getOauthToken(parameters); Properties.Settings.Default.Save(); } parameters.AccessToken = getPersistedOAuthToken(); return parameters; }
public Dictionary<string, Tuple<string, string, string, bool>> SheetDownload(string IntegrationName, OAuth2Parameters paramaters, string SpreadSheetURI) { GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory(null, IntegrationName, paramaters); SpreadsheetsService service = new SpreadsheetsService(IntegrationName); string accessToken = paramaters.AccessToken; service.RequestFactory = requestFactory; WorksheetEntry worksheet = this.GetWorksheet(paramaters, IntegrationName, SpreadSheetURI, service); Dictionary<string, Tuple<string, string, string, bool>> OnlineMapList = new Dictionary<string, Tuple<string, string, string, bool>>(); string map = "MapNameError"; string URL = "URL ERROR"; string UserSteamID = "0"; string Note = "No Notes"; bool MapUploadStatus = false; AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null); ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString()); ListFeed listFeed = service.Query(listQuery); foreach (ListEntry row in listFeed.Entries) { map = row.Elements[1].Value; URL = row.Elements[2].Value; UserSteamID = row.Elements[3].Value; Note = row.Elements[4].Value; if (row.Elements[5].Value == "TRUE") { MapUploadStatus = true; } else { MapUploadStatus = false; } if (!OnlineMapList.ContainsKey(map)) { OnlineMapList.Add(map, new Tuple<string, string, string, bool>(URL, UserSteamID, Note, MapUploadStatus)); } } return OnlineMapList; }
/// <summary> /// Send authorized queries to a Request-based library /// </summary> /// <param name="service"></param> private static void RunContactsSample(OAuth2Parameters parameters) { try { RequestSettings settings = new RequestSettings(applicationName, parameters); ContactsRequest cr = new ContactsRequest(settings); Feed<Contact> f = cr.GetContacts(); foreach (Contact c in f.Entries) { Console.WriteLine(c.Name.FullName); } } catch (AppsException a) { Console.WriteLine("A Google Apps error occurred."); Console.WriteLine(); Console.WriteLine("Error code: {0}", a.ErrorCode); Console.WriteLine("Invalid input: {0}", a.InvalidInput); Console.WriteLine("Reason: {0}", a.Reason); } }
private void Authenticate(string userToken, string refreshToken) { var parameters = new OAuth2Parameters { ClientId = SpreadsheetConfiguration.ClientId, ClientSecret = SpreadsheetConfiguration.ClientSecret, RedirectUri = SpreadsheetConfiguration.RedirectUri, Scope = SpreadsheetConfiguration.Scope, RefreshToken = refreshToken, AccessToken = userToken }; SpreadsheetService = new SpreadsheetsService(CoreSprintApp.GoogleApiAppName) { RequestFactory = new GOAuth2RequestFactory(null, CoreSprintApp.GoogleApiAppName, parameters) }; }
/// <summary> /// Send the request body to the OAuth 2.0 token endpoint to retrieve an access token. /// When successful, updates the OAuthParameter instance passed as parameter by setting /// AccessToken, RefreshToken and TokenExpiry. /// </summary> /// <param name="parameters">The OAuth 2.0 parameters</param> /// <param name="requestBody">The request body to send</param> public static void GetOAuth2AccessToken(OAuth2Parameters parameters, String requestBody) { Uri requestUri = new Uri(parameters.TokenUri); WebRequest request = WebRequest.Create(requestUri); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; Stream outputStream = request.GetRequestStream(); StreamWriter w = new StreamWriter(outputStream); w.Write(requestBody); w.Flush(); w.Close(); WebResponse response = request.GetResponse(); string result = ""; if (response != null) { Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream); result = reader.ReadToEnd(); Dictionary <string, string> dict = JsonConvert.DeserializeObject <Dictionary <string, string> >(result); if (dict.ContainsKey(OAuth2AccessToken)) { parameters.AccessToken = dict[OAuth2AccessToken]; } if (dict.ContainsKey(OAuth2RefreshToken)) { parameters.RefreshToken = dict[OAuth2RefreshToken]; } if (dict.ContainsKey(OAuth2TokenType)) { parameters.TokenType = dict[OAuth2TokenType]; } if (dict.ContainsKey(OAuth2ExpiresIn)) { parameters.TokenExpiry = DateTime.Now.AddSeconds(int.Parse(dict[OAuth2ExpiresIn])); } } }
public GoogleDocService() { var config = new Config(); OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = config.Get("Google_Client_Id"); parameters.ClientSecret = config.Get("Google_Client_Secret"); parameters.Scope = config.Get("Google_Scope"); parameters.AccessToken = config.Get("Google_Auth2_AccessToken"); parameters.RefreshToken = config.Get("Google_Auth2_RefreshToken"); GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory(null, "Sheet-bill", parameters); _spreadsheetService = new SpreadsheetsService("Sheet-bill"); _spreadsheetService.RequestFactory = requestFactory; }
public void GetAccessToken() { OAuth2Parameters parameters = new OAuth2Parameters(); parameters.ClientId = CLIENT_ID; parameters.ClientSecret = CLIENT_SECRET; parameters.RedirectUri = REDIRECT_URI; parameters.Scope = SCOPE; parameters.AccessCode = ACCESS_CODE; OAuthUtil.GetAccessToken(parameters); OAuthUtil.RefreshAccessToken (parameters); ACCESS_TOKEN = parameters.AccessToken; REFRESH_TOKEN = parameters.RefreshToken; EditorUtility.SetDirty (this); }
/// <summary> /// Generates the url which the user should visit in order to authenticate and /// authorize with the Service Provider. /// When successful, updates the OAuth2Parameters instance passed as parameter by setting /// the returned access code. /// </summary> /// <param name="parameters">The OAuth 2.0 parameters</param> /// <returns>The full authorization url the user should visit</returns> public static string CreateOAuth2AuthorizationUrl(OAuth2Parameters parameters) { StringBuilder sb = new StringBuilder(); sb.Append(parameters.AuthUri); sb.AppendFormat("?{0}={1}", OAuthBase.OAuth2ResponseType, OAuthBase.EncodingPerRFC3986(parameters.ResponseType)); sb.AppendFormat("&{0}={1}", OAuthBase.OAuth2ClientId, OAuthBase.EncodingPerRFC3986(parameters.ClientId)); sb.AppendFormat("&{0}={1}", OAuthBase.OAuth2RedirectUri, OAuthBase.EncodingPerRFC3986(parameters.RedirectUri)); sb.AppendFormat("&{0}={1}", OAuthBase.OAuthScopeKey, OAuthBase.EncodingPerRFC3986(parameters.Scope)); sb.AppendFormat("&{0}={1}", OAuthBase.OAuth2AccessType, OAuthBase.EncodingPerRFC3986(parameters.AccessType)); sb.AppendFormat("&{0}={1}", OAuthBase.OAuth2ApprovalPrompt, OAuthBase.EncodingPerRFC3986(parameters.ApprovalPrompt)); if (!string.IsNullOrEmpty(parameters.State)) { sb.AppendFormat("&{0}={1}", OAuthBase.OAuth2State, OAuthBase.EncodingPerRFC3986(parameters.State)); } return(sb.ToString()); }
/// <summary> /// Constructor. /// </summary> public GOAuth2RequestFactory(string service, string applicationName, OAuth2Parameters parameters) : base(service, applicationName) { this.Parameters = parameters; }
/// <summary> /// a constructor for OAuth 2.0 /// </summary> /// <param name="applicationName">The name of the application</param> /// <param name="consumerKey">the consumerKey to use</param> /// <param name="consumerSecret">the consumerSecret to use</param> /// <param name="token">The token to be used</param> /// <param name="tokenSecret">The tokenSecret to be used</param> /// <returns></returns> public OAuth2Authenticator(string applicationName, OAuth2Parameters parameters) : base(applicationName) { this.parameters = parameters; }
/// <summary> /// Exchanges the user-authorized request token for an OAuth 2.0 access token. /// When successful, updates the OAuthParameter instance passed as parameter by setting /// AccessToken, RefreshToken and TokenExpiry. /// </summary> /// <param name="parameters">The OAuth 2.0 parameters</param> public static void GetAccessToken(OAuth2Parameters parameters) { OAuthBase.GetOAuth2AccessToken(parameters, OAuthBase.GetExchangeAccessCodeRequestBody(parameters)); }
/// <summary> /// Refresh the OAuth 2.0 access token. /// When successful, updates the OAuthParameter instance passed as parameter by setting /// AccessToken, RefreshToken and TokenExpiry. /// </summary> /// <param name="parameters">The OAuth 2.0 parameters</param> public static void RefreshAccessToken(OAuth2Parameters parameters) { OAuthBase.GetOAuth2AccessToken(parameters, OAuthBase.GetRefreshAccessTokenRequestBody(parameters)); }
/// <summary> /// Initilize sheets API with saved token /// </summary> public void Initilize() { PermissiveCert.Instate(); RefreshToken = EditorPrefs.GetString("Datablocks_RefreshToken"); AccessToken = EditorPrefs.GetString("Datablocks_AccessToken"); Service = new SpreadsheetsService("Datablocks for Unity"); // OAuth2Parameters holds all the parameters related to OAuth 2.0. oAuthParameters = new OAuth2Parameters(); // Set your OAuth 2.0 Client Id (which you can register at oAuthParameters.ClientId = CLIENT_ID; // Set your OAuth 2.0 Client Secret, which can be obtained at oAuthParameters.ClientSecret = CLIENT_SECRET; // Set your Redirect URI, which can be registered at oAuthParameters.RedirectUri = REDIRECT_URI; // Set the scope for this particular service. oAuthParameters.Scope = SCOPE; if (!string.IsNullOrEmpty(RefreshToken)) { oAuthParameters.RefreshToken = RefreshToken; oAuthParameters.AccessToken = AccessToken; var requestFactory = new GOAuth2RequestFactory(null, "Datablocks for Unity", oAuthParameters); Service.RequestFactory = requestFactory; } }
public SpreadSheetManager(OAuth2Parameters parameters) { GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory(null, "MySpreadsheetIntegration-v1", parameters); service = new SpreadsheetsService("MySpreadsheetIntegration-v1"); service.RequestFactory = requestFactory; }