public GoogleAccessTokenResponse GetAccessTokenFromRefreshToken(string refreshToken) { // Declare the POST data NameValueCollection postData = new NameValueCollection { { "client_id", ClientIdFull }, { "client_secret", ClientSecret }, { "refresh_token", refreshToken }, { "grant_type", "refresh_token" } }; // Make a call to the server JsonObject json = SocialUtils.DoHttpPostRequestAndGetBodyAsJsonObject("https://accounts.google.com/o/oauth2/token", null, postData); // Check for an error message if (json.HasValue("error")) { throw new Exception(json.GetString("error")); } // Parse the JSON response return(GoogleAccessTokenResponse.Parse(json)); }