❔ System.Net.Http truncates one of the response attributes
The access_token is always 632 characters long, and when I test it in Postman it works fine
Postman Code:
using System; using RestSharp; namespace HelloWorldApplication { class HelloWorld { static void Main(string[] args) { var client = new RestClient("https://zoom.us/oauth/token?account_id=VfdA06Q9TQe31jH7oRutuQ&grant_type=account_credentials"); client.Timeout = -1; var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Basic ####"); request.AddHeader("Cookie", "####"); var body = @""; request.AddParameter("text/plain", body, ParameterType.RequestBody); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content); } } }
I have a limitation that prevents me from using RestSharp. As such, I am using System.Net.Http in my application, but the access_token is always 533 characters long. I get unauthorized response whenever I use that token which is what alerted me that something may be wrong with it.
System.Net.Http Code
using System; using System.Collections.Generic; using System.Net.Http; using Newtonsoft.Json; using Newtonsoft.Json.Linq;
namespace ConsoleApp_Test_ZoomCreateMeeting { class Program { static void Main(string[] args) { //Get current token age // Get the get credentials
// Build the request body var authRequestBody = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("grant_type", "client_credentials"), new KeyValuePair<string, string>("client_id", "####"), new KeyValuePair<string, string>("client_secret", "####") });
// Set up the HTTP client var authClient = new HttpClient(); authClient.BaseAddress = new Uri("https://zoom.us/");
// Send the request and get the response HttpResponseMessage authResponse = authClient.PostAsync("oauth/token", authRequestBody).Result;
string content = authResponse.Content.ReadAsStringAsync().Result; long contentLength = authResponse.Content.Headers.ContentLength ?? 0;
// Parse the JSON response JObject jsonResponse = JsonConvert.DeserializeObject<JObject>(responseContent);
// Create an instance of JsonSerializerSettings and set the ReferenceLoopHandling property to Ignore JsonSerializerSettings serializerSettings = new JsonSerializerSettings(); serializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
// Serialize the jsonResponse object using the JsonSerializerSettings object string serializedJsonResponse = JsonConvert.SerializeObject(jsonResponse, serializerSettings);
// Extract the access_token property (value<t>) string currentToken = jsonResponse["access_token"].Value<string>();