首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用API中的服务帐户创建带有google meet链接的活动?

如何使用API中的服务帐户创建带有google meet链接的活动?
EN

Stack Overflow用户
提问于 2021-06-18 06:02:32
回答 1查看 207关注 0票数 0

使用服务帐户,如何通过使用google日历API创建事件来生成google meet链接。我有我的授权,一切都很好。但我一点也不知道是什么。这是我的代码,成功地创建了事件,但没有生成google meet链接。响应显示了事件创建的详细信息,但没有显示关于google-meet的任何信息。如果能帮上忙我会很感激的。

代码语言:javascript
运行
AI代码解释
复制
        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"];
        }
EN

回答 1

Stack Overflow用户

发布于 2021-06-18 09:34:17

解决方案

将以下对象添加到请求正文

代码语言:javascript
运行
AI代码解释
复制
conferenceData: {
  createRequest: {
    requestId: "sample123",
    conferenceSolutionKey: { type: "hangoutsMeet" },
  },
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68030072

复制
相关文章
收到告警后如何快速定位问题
上面两个错误是突然出现的,如果只看第一个错误,就可能以为是redisson的bug(https://github.com/redisson/redisson/issues/3273)。实际上是因为命令ZRANGEBYSCORE在大key上执行,耗时太长,引发其他请求也超时
十毛
2021/11/24
1.6K0
时隔一年半终于可以再次收到谷歌 AdSense 付款了
进入十月份了终于再时隔一年半以后可以再次收到谷歌 AdSense 付款了,上次收款还是 2017 年 3 月份的事儿了,自 2017 年 3 月开始明月就基本停止了 AdSense 广告的投放,期间有过短时间的折腾和尝试也都是体验 AdSense 新版广告样式为主的,基本也就没有啥实质的收入的。也就是今年九月份开始将 AdSense 广告作为主要的广告联盟来全站点投放。
明月登楼的博客
2019/05/15
7880
时隔一年半终于可以再次收到谷歌 AdSense 付款了
如何用Java开发付款功能
官网地址 https://opendocs.alipay.com/open/54/103419
编程思维
2023/08/23
3760
如何用Java开发付款功能
8个woocommerce支付网关插件推荐
当然您以前听说过WooCommerce吗?这是用WordPress建立在线商店的最简单方法之一。WooCommerce允许网站所有者添加产品,数字商品,甚至订​​阅(取决于您已安装的WooCommerce扩展)。但是,对于WooCommerce包含的所有强大功能,仅内置了一些默认付款选项。幸运的是,您可以添加大量免费的高级WooCommerce付款网关插件,为客户提供新的结帐选项。
Hoan外贸建站
2020/12/03
6.9K0
如何在JavaScript中实现某个方法执行超时后则继续执行其它方法?
异想天开,想用 setTimeout 来做个 workaround ,但是 setTimeout / setInterval 方法是在它所在的方法执行完之后才开始计时的,于是,光当一声,这个 workaround 不成立。
阿敏总司令
2019/02/28
1.9K0
iOS小技能: 限制账号退出登陆后无法收到推送功能(递归设置和删除别名)
⭕ 解决iOS15之后本地通知通知栏弹出多次的问题:使用Service Extension拦截消息推送,修改UNNotificationSound为本地拼接的音频,来避免产生多条横幅。
公众号iOS逆向
2022/08/22
1.7K0
iOS小技能: 限制账号退出登陆后无法收到推送功能(递归设置和删除别名)
事件处理类,收到事件后具体的业务处理逻辑
事件生产类,定义如何将业务逻辑的事件转为disruptor事件发布到环形队列,用于消费: package com.bolingcavalry.service; import com.lmax.disruptor.RingBuffer; public class StringEventProducer { // 存储数据的环形队列 private final RingBuffer<StringEvent> ringBuffer; public StringEventProduc
用户8671053
2021/09/26
6170
绑定事件中 如可控制函数的执行次数
var flag = true; function onlyOne() { if(flag) { "这里是要执行的代码"; } flag = false//该方法是控制函数仅执行一次 因为flag是全局变量 onlyOne()函数执行一次后flag就变成false了 函数就执行不了了
大当家
2018/06/28
2.4K0
如何在 docker 中执行 crontab
新建名为hello-cron的文件 内容为: # PATH非常重要,因为cron bash和系统环境变量不一致 PATH="/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" * * * * * echo hello > /proc/1/fd/1 2>/proc/1/fd/2 # An empty line is required at the end of this file for a valid c
马哥Python
2019/06/27
7.1K0
SAP MM 分期付款场景下的付款方式
近日收到所在项目上的某用户报告的一个问题,说是某个采购订单发票里的付款方式与财务凭证里的付款方式不一致,让帮忙解释一下。
SAP虾客
2021/03/01
5860
Sublime Text 执行后只有运行
分析:操作回忆:开始是可以看到运行结果的,后来在Tools>>Build with 选择了“Syntax Check”,进行了语法检查,后来再操作就如上了;
py3study
2020/01/16
9210
如何在 Chrome 中执行 JavaScript 代码
要在浏览器中执行 JavaScript 脚本,首先你的浏览器得支持。现在主流推荐 Chrome 浏览器,也可以使用基于 Chromium 的 Edge 浏览器。下面来介绍如何在 Chrome 中打开开发者工具,以及如何在开发者工具中运行调试 JavaScript 代码。
村雨遥
2022/03/14
6.2K0
如何在 Chrome 中执行 JavaScript 代码
iphone被偷收到“骗子钓鱼短信”后对骗子网站渗透测试
上面这条信息是一个网友的,2020年过年期间有几个网友在火车站遇到手机给偷了,然后也收到这种信息,然后跑来私信我求助,而且过年期间上百个“”!
Power7089
2020/07/27
1.1K0
iphone被偷收到“骗子钓鱼短信”后对骗子网站渗透测试
如何在远程系统执行程序
在我们获得用户名口令后,尝试远程登陆目标主机并执行程序,结合实际环境做了如下测试.
Ms08067安全实验室
2019/12/18
1.6K0
vmi运行流程简图_申请强制执行后多久执行
`vmm_test_begin(testcase_name,vmm_env,“Test Case Name String”) ;
全栈程序员站长
2022/11/09
6380
点击加载更多

相似问题

R中的Webscraping

13

R: Webscraping文件?

24

需要输入的R中的Webscraping

14

R中的Webscraping -注释掉的表

10

用webscraping检查r中的循环错误

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档