private void setOAuth2ParametersWithConfigSettings()
 {
     oAuth2Parameters = new OAuth2Parameters();
     oAuth2Parameters.ClientId = ConfigurationManager.AppSettings["GoogleClientID"];
     oAuth2Parameters.ClientSecret = ConfigurationManager.AppSettings["GoogleClientSecret"];
     oAuth2Parameters.Scope = ConfigurationManager.AppSettings["GoogleScope"];
 }
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
        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;
        }
Пример #4
0
        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);
            }
        }
Пример #6
0
        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);
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
 /// <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;
 }
Пример #9
0
        public GDEOAuth()
        {
            oauth2Params = new OAuth2Parameters();

            oauth2Params.ClientId = CLIENT_ID;
            oauth2Params.ClientSecret = CLIENT_SECRET;
            oauth2Params.RedirectUri = REDIRECT_URI;
            oauth2Params.Scope = SCOPE;
        }
Пример #10
0
 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);
 }
Пример #11
0
        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;
        }
Пример #12
0
        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);
            }
        }
Пример #13
0
        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());
        }
Пример #14
0
        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;
        }
Пример #15
0
        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;
        }
Пример #16
0
		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 );
		}
Пример #17
0
 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();
 }
Пример #18
0
 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;
 }
Пример #19
0
    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);
    }
Пример #20
0
 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);
 }
Пример #21
0
 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;
 }
Пример #22
0
        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;
        }
Пример #23
0
        /// <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);
 }
Пример #25
0
        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);
        }
Пример #26
0
        // 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;
        }
Пример #27
0
        /// <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();
        }
Пример #28
0
 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;
 }
Пример #29
0
        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;
        }
Пример #30
0
        /// <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)
            };
        }
Пример #32
0
        /// <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]));
                }
            }
        }
Пример #33
0
        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;
        }
Пример #34
0
    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);
    }
Пример #35
0
        /// <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());
        }
Пример #36
0
 /// <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;
 }
Пример #38
0
 /// <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));
 }
Пример #39
0
 /// <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));
 }
Пример #40
-1
    /// <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;
 }