// This is utility method used to transform Google Drive token to our own object. private DriveToken GetTokenFromContent(string content) { JavaScriptSerializer ser = new JavaScriptSerializer(); var tokenArray = ser.Deserialize <Dictionary <string, string> >(content); DriveToken token = new DriveToken(); foreach (var tokenKey in tokenArray.Keys) { switch (tokenKey) { case "access_token": token.AccessToken = tokenArray[tokenKey]; break; case "token_type": token.TokenType = tokenArray[tokenKey]; break; case "expires_in": token.ExpiresIn = tokenArray[tokenKey]; break; case "refresh_token": token.RefreshToken = tokenArray[tokenKey]; break; } } return(token); }
// Step 3: Optional: This step is used to get refresh token if token expires. public DriveToken GetRefreshToken() { Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add(DriveRestConstants.ClientSecretKey, ClientSecret); parameters.Add(DriveRestConstants.GrantTypeKey, DriveRestConstants.RefreshTokenKey); parameters.Add(DriveRestConstants.RefreshTokenKey, Token.RefreshToken); parameters.Add(DriveRestConstants.ClientIDKey, ClientID); //parameters.Add(DriveRestConstants.RedirectURIKey, RedirectURL); WarmupRequest(Method.POST, DriveRestConstants.AccountHostURL, DriveRestConstants.GetTokenRequestURL , parameters, null); IRestResponse response = restClient.Execute(restRequest); var content = response.Content; // raw content as string //JavaScriptSerializer ser = new JavaScriptSerializer(); DriveToken token = GetTokenFromContent(content);//(DriveToken)ser.DeserializeObject(content); Token = token; return(token); }
// Step 2nd: This is second step to get the Token when control is handed over from dropbox to our app. public DriveToken GetTokenfromCode(string code) { Dictionary<string,string> parameters = new Dictionary<string,string>(); parameters.Add(DriveRestConstants.CodeKey, code); parameters.Add(DriveRestConstants.RedirectURIKey, RedirectURL); parameters.Add(DriveRestConstants.ClientIDKey, ClientID); parameters.Add(DriveRestConstants.ClientSecretKey, ClientSecret); parameters.Add(DriveRestConstants.GrantTypeKey, DriveRestConstants.GrantTypeAuthorizationCode); WarmupRequest(Method.POST,DriveRestConstants.AccountHostURL,DriveRestConstants.GetTokenRequestURL ,parameters,null); IRestResponse response = restClient.Execute(restRequest); var content = response.Content; // raw content as string //JavaScriptSerializer ser = new JavaScriptSerializer(); DriveToken token = GetTokenFromContent(content); //(DriveToken)ser.DeserializeObject(content); Token = token; return token; }
// This is utility method used to transform Google Drive token to our own object. private DriveToken GetTokenFromContent(string content) { JavaScriptSerializer ser = new JavaScriptSerializer(); var tokenArray = ser.Deserialize<Dictionary<string, string>>(content); DriveToken token = new DriveToken(); foreach (var tokenKey in tokenArray.Keys) { switch (tokenKey) { case "access_token": token.AccessToken = tokenArray[tokenKey]; break; case "token_type": token.TokenType = tokenArray[tokenKey]; break; case "expires_in": token.ExpiresIn = tokenArray[tokenKey]; break; case "refresh_token": token.RefreshToken = tokenArray[tokenKey]; break; } } return token; }