[英]How to create event with videoconference in Google Meet in C# using Google Calendar API?
[英]How to create a event with google meet link using service account in API?
使用服務帳戶,如何通過使用谷歌日歷 API 創建活動來生成谷歌會議鏈接。我的授權一切正常。 但我不知道是什么。 這是我的代碼,成功創建事件但未生成 google meet 鏈接。 響應顯示事件創建詳細信息,但與 google-meet 無關。 我真的很感激一些幫助。
string calendarId = @"calendar-id";
string[] Scopes = { CalendarService.Scope.Calendar };
ServiceAccountCredential credential;
string path = Server.MapPath("~/file.json");
using (var stream =
new FileStream(path, FileMode.Open, FileAccess.Read))
{
var confg = Google.Apis.Json.NewtonsoftJsonSerializer.Instance.Deserialize<JsonCredentialParameters>(stream);
credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(confg.ClientEmail)
{
Scopes = Scopes
}.FromPrivateKey(confg.PrivateKey));
}
var service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Calendar API Sample",
});
var calendar = service.Calendars.Get(calendarId).Execute();
string token = credential.Token.AccessToken;
// Define parameters of request.
EventsResource.ListRequest listRequest = service.Events.List(calendarId);
listRequest.TimeMin = DateTime.Now;
listRequest.ShowDeleted = false;
listRequest.SingleEvents = true;
listRequest.MaxResults = 10;
listRequest.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime;
Event newEvent = new Event();
{
DateTime start = Convert.ToDateTime("2021-06-18T05:00:02.000Z");
DateTime end = Convert.ToDateTime("2021-06-18T06:00:02.000Z");
newEvent.Summary = "summary".ToString();
newEvent.Description = "description".ToString();
newEvent.Status = "confirmed";
newEvent.Creator = new Event.CreatorData
{
Email = " email-id",
Self = true
};
newEvent.Organizer = new Event.OrganizerData
{
Email = "email-id",
Self = true
};
newEvent.Start = new EventDateTime
{
DateTime = start,
TimeZone = "Asia/Kolkata"
};
newEvent.End = new EventDateTime
{
DateTime = end,
TimeZone = "Asia/Kolkata"
};
newEvent.HangoutLink = "";
newEvent.ConferenceData = new ConferenceData()
{
ConferenceSolution = new ConferenceSolution
{
Key = new ConferenceSolutionKey
{
Type = "hangoutsMeet"
}
},
CreateRequest = new CreateConferenceRequest()
{
ConferenceSolutionKey = new ConferenceSolutionKey()
{
Type = "hangoutsMeet"
},
RequestId = "some-random-string"
},
};
//newEvent.Attendees = new List<EventAttendee>()
//{
// new EventAttendee() { Email = "" }
//};
};
RestClient restClient = new RestClient();
RestRequest request = new RestRequest();
var serilaizeJson = JsonConvert.SerializeObject(newEvent, Formatting.None,
new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});
request.AddQueryParameter("key", "api-key");
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", serilaizeJson, ParameterType.RequestBody);
restClient.BaseUrl = new System.Uri("https://www.googleapis.com/calendar/v3/calendars/calendar-id/events?conferenceDataVersion=1");
var response = restClient.Post(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
dynamic returnFile = JObject.Parse(response.Content);
string link = returnFile["hangoutLink"];
}
在請求正文中添加以下 object
conferenceData: {
createRequest: {
requestId: "sample123",
conferenceSolutionKey: { type: "hangoutsMeet" },
},
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.