如何使用 restsharp 更新现有的 Zoom API 会议
How to update an existing meeting with Zoom API with restsharp
我正在尝试使用 restsharp 在 visual studio 中更新或重新安排已安排的会议或将已安排会议的日期更改为下个月。
这是 Zoom API 版本 2 文档的 link:
https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetingUpdate
我可以创建会议,但无法更新会议。它不工作。我是新来的所以请帮助我。
以下是我的代码:
public ActionResult EmployeeUpdate(string employee)
{
var client = new RestClient("https://api.zoom.us/v2/meetings/{MeetingId}"); //long type
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("authorization", "Bearer " + "ZoomJWTToken");
request.AddJsonBody(new
{
topic = "Future Meeting",
type = 2,
start_time = "2022-03-25T6:00:00",
duration = 30,
timezone = "Asia/Tashkent",
password = "password"
});
IRestResponse response = client.Execute(request);
HttpStatusCode statusCode = response.StatusCode;
int numericStatusCode = (int)statusCode;
Assert.Equal(204, numericStatusCode);
return NoContent();
}
这是一个 PATCH
请求。更改 RestRequest
应该可以解决问题。有关如何使用 API 的更多示例,请参阅 Postman。
来自 Postman 的示例请求:
var client = new RestClient("https://api.zoom.us/v2/meetings/:meetingId?occurrence_id=<string>");
client.Timeout = -1;
var request = new RestRequest(Method.PATCH);
request.AlwaysMultipartFormData = true;
request.AddParameter("schedule_for", "<string>");
request.AddParameter("topic", "<string>");
request.AddParameter("type", "2");
request.AddParameter("start_time", "<dateTime>");
request.AddParameter("duration", "<integer>");
request.AddParameter("timezone", "<string>");
request.AddParameter("password", "<string>");
request.AddParameter("agenda", "<string>");
request.AddParameter("tracking_fields", "[{\"field\":\"<string>\",\"value\":\"<string>\"},{\"field\":\"<string>\",\"value\":\"<string>\"}]");
request.AddParameter("recurrence", "{\"type\":\"<integer>\",\"repeat_interval\":\"<integer>\",\"weekly_days\":\"1\",\"monthly_day\":1,\"monthly_week\":\"<integer>\",\"monthly_week_day\":\"<integer>\",\"end_times\":1,\"end_date_time\":\"<dateTime>\"}");
request.AddParameter("settings", "{\"host_video\":\"<boolean>\",\"participant_video\":\"<boolean>\",\"cn_meeting\":false,\"in_meeting\":false,\"join_before_host\":false,\"mute_upon_entry\":false,\"watermark\":false,\"use_pmi\":false,\"approval_type\":2,\"registration_type\":1,\"audio\":\"both\",\"auto_recording\":\"none\",\"enforce_login\":\"<boolean>\",\"enforce_login_domains\":\"<string>\",\"alternative_hosts\":\"<string>\",\"close_registration\":false,\"waiting_room\":false,\"global_dial_in_countries\":[\"<string>\",\"<string>\"],\"global_dial_in_numbers\":[{\"country\":\"<string>\",\"country_name\":\"<string>\",\"city\":\"<string>\",\"number\":\"<string>\",\"type\":\"<string>\"},{\"country\":\"<string>\",\"country_name\":\"<string>\",\"city\":\"<string>\",\"number\":\"<string>\",\"type\":\"<string>\"}],\"contact_name\":\"<string>\",\"contact_email\":\"<string>\",\"registrants_confirmation_email\":\"<boolean>\",\"registrants_email_notification\":\"<boolean>\",\"meeting_authentication\":\"<boolean>\",\"authentication_option\":\"<string>\",\"authentication_domains\":\"<string>\",\"authentication_name\":\"<string>\"}");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
我正在尝试使用 restsharp 在 visual studio 中更新或重新安排已安排的会议或将已安排会议的日期更改为下个月。
这是 Zoom API 版本 2 文档的 link:
https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetingUpdate
我可以创建会议,但无法更新会议。它不工作。我是新来的所以请帮助我。
以下是我的代码:
public ActionResult EmployeeUpdate(string employee)
{
var client = new RestClient("https://api.zoom.us/v2/meetings/{MeetingId}"); //long type
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("authorization", "Bearer " + "ZoomJWTToken");
request.AddJsonBody(new
{
topic = "Future Meeting",
type = 2,
start_time = "2022-03-25T6:00:00",
duration = 30,
timezone = "Asia/Tashkent",
password = "password"
});
IRestResponse response = client.Execute(request);
HttpStatusCode statusCode = response.StatusCode;
int numericStatusCode = (int)statusCode;
Assert.Equal(204, numericStatusCode);
return NoContent();
}
这是一个 PATCH
请求。更改 RestRequest
应该可以解决问题。有关如何使用 API 的更多示例,请参阅 Postman。
来自 Postman 的示例请求:
var client = new RestClient("https://api.zoom.us/v2/meetings/:meetingId?occurrence_id=<string>");
client.Timeout = -1;
var request = new RestRequest(Method.PATCH);
request.AlwaysMultipartFormData = true;
request.AddParameter("schedule_for", "<string>");
request.AddParameter("topic", "<string>");
request.AddParameter("type", "2");
request.AddParameter("start_time", "<dateTime>");
request.AddParameter("duration", "<integer>");
request.AddParameter("timezone", "<string>");
request.AddParameter("password", "<string>");
request.AddParameter("agenda", "<string>");
request.AddParameter("tracking_fields", "[{\"field\":\"<string>\",\"value\":\"<string>\"},{\"field\":\"<string>\",\"value\":\"<string>\"}]");
request.AddParameter("recurrence", "{\"type\":\"<integer>\",\"repeat_interval\":\"<integer>\",\"weekly_days\":\"1\",\"monthly_day\":1,\"monthly_week\":\"<integer>\",\"monthly_week_day\":\"<integer>\",\"end_times\":1,\"end_date_time\":\"<dateTime>\"}");
request.AddParameter("settings", "{\"host_video\":\"<boolean>\",\"participant_video\":\"<boolean>\",\"cn_meeting\":false,\"in_meeting\":false,\"join_before_host\":false,\"mute_upon_entry\":false,\"watermark\":false,\"use_pmi\":false,\"approval_type\":2,\"registration_type\":1,\"audio\":\"both\",\"auto_recording\":\"none\",\"enforce_login\":\"<boolean>\",\"enforce_login_domains\":\"<string>\",\"alternative_hosts\":\"<string>\",\"close_registration\":false,\"waiting_room\":false,\"global_dial_in_countries\":[\"<string>\",\"<string>\"],\"global_dial_in_numbers\":[{\"country\":\"<string>\",\"country_name\":\"<string>\",\"city\":\"<string>\",\"number\":\"<string>\",\"type\":\"<string>\"},{\"country\":\"<string>\",\"country_name\":\"<string>\",\"city\":\"<string>\",\"number\":\"<string>\",\"type\":\"<string>\"}],\"contact_name\":\"<string>\",\"contact_email\":\"<string>\",\"registrants_confirmation_email\":\"<boolean>\",\"registrants_email_notification\":\"<boolean>\",\"meeting_authentication\":\"<boolean>\",\"authentication_option\":\"<string>\",\"authentication_domains\":\"<string>\",\"authentication_name\":\"<string>\"}");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);