自动化会议提交工作流程:集成解决方案

一篇文章中 ,我描述了自动化的发贴子:围绕会议提交工作流管理重复性任务。 我写了有关安装程序,以及如何使用ngrok将webhooks重定向到我的计算机的文章。 这周,我想写一些我在旅途中遇到的打ic。

注册Trello Webhook

大多数SaaS提供商都允许通过其GUI注册Webhook。 例如GitHub的情况:它位于“ Settings Webhooks菜单。

注册GitHub Webhook

不管好坏,Trello都不是。 要注册一个Webhook ,需要执行一个HTTP请求。 这要求:

  1. API密钥每个帐户唯一 有趣的是,它无法重置。 不要泄漏它,否则您会后悔的!
  2. 令牌,应该为每个应用程序生成。 要生成令牌,请按照相关页面说明进行操作。 必需的参数如下:
    • 范围 :读取,写入等
    • 应用名称
    • 到期日
    • 板的ID。 为了获得它,请在板的URL末尾附加.json以显示其JSON表示形式。 ID是前几个参数之一:
      {
        "id": "5d383691a3aeaa3b5741953d",
        "name": "My board",
        "desc": "",
        "descData": null,
        "closed": false,
        "idOrganization": null,
        "idEnterprise": null
      }
  3. 最后,发送类似于以下内容的POST请求:
    curl-X POST -H"Content-Type: application/json"\
    https://api.trello.com/1/tokens/ { token } /webhooks/ \
    -d'{
      "key": "{key}",
      "callbackURL": "http://www.mywebsite.com/trelloCallback",
      "idModel":"{boardID}",
      "description": "Name of the webhook"
    }'

准备网络挂钩

要检查webhook是否有效,Trello将立即向刚刚注册的回调发送HEAD请求。 如果此请求不成功,则注册将失败。 例如,如果应用未启动或URL无法访问,则会发生这种情况。

HEAD HTTP方法很少使用。 例如,当使用Spring Boot时,它需要显式配置这样的端点:

funroutes(runtimeService:RuntimeService)=router{
  valhandler=TriggerHandler(runtimeService)
  POST("/trigger",handler::post)
  HEAD("/trigger",handler::head)
}

classTriggerHandler(privatevalruntimeService:RuntimeService){

  funpost(request:ServerRequest):ServerResponse{
    // Starts the workflow instance
  }

  funhead(request:ServerRequest)=ServerResponse.ok().build()
}

由于控制器未提供任何GET端点,因此上述代码段与HTTP规范不太兼容:

HEAD方法与GET相同,除了服务器在响应中不得返回消息正文。 响应HEAD请求的HTTP标头中包含的元信息应该与响应GET请求发送的信息相同。 此方法可用于获取有关请求所隐含的实体的元信息,而无需转移实体主体本身。 此方法通常用于测试超文本链接的有效性,可访问性和最新修改。

—超文本传输​​协议-HTTP / 1.1
https://ietf.org/rfc/rfc2616.txt

在所有情况下,它都能完成工作。 此外,我没有找到轻松创建委托给GET端点的HEAD端点的任何方法。 提示非常受欢迎。

Google权限

Google需要管理对象(读取,写入等)的权限。无论在Calendar还是Sheets(或其他Google API)上,最新文档的问题都在于它偏向Android, 例如 Calendar Java Quickstart 。 在这种用例中,许可请求是交互式的:首先向用户显示一个身份验证屏幕,然后要求用户提供所需的许可。

通常,工作流允许交互式或自动步骤。 交互式步骤允许输入一个人的凭据并授权该应用程序,但是先前定义的工作流程仅具有自动化步骤。 对于真正的自动化工作流程,应尽可能避免交互步骤。 但是,出于安全原因,Google禁止使用自己的帐户凭据(登录名和密码)。 但是它提供了另一种选择:可以创建一个所谓的服务帐户,并为其授予对相关日历和文档的写权限。

创建一个Google服务帐户

要创建服务帐户:

  1. 转到Google Cloud控制台中的服务帐户页面
  2. 创建或选择一个项目
  3. 填写必填项
  4. 选择新创建的帐户,单击“ Edit ,然后单击“ Create Key 下载密钥并将其存储在安全的地方,因为它包含将自己作为创建的服务帐户进行身份验证所必需的凭据。

配置权限

要使服务帐户可以访问自己的日历(或文档),需要执行两个步骤:

  1. 首先,应该授予项目使用API​​的权限。 在创建服务帐户的项目上下文中,打开左侧菜单。 转到APIs & Services Library 选择Google Calendar API ,然后在打开的页面中点击Enable Google Calendar API重复上述步骤。
  2. 然后,应该让代表团访问自己的日历。 在日历中,找到菜单:我的日历列表,然后点击相关菜单,然后点击Settings and sharing 找到“ Share with specific people部分,然后添加访问级别为“ Manage changes to events的服务帐户。

    对于Google表格,请与服务帐户共享文档。

  3. 如果该选项显示为灰色,则表示域管理员不允许该选项。 如果您是自己域的管理员,请转到Google管理控制台 然后,点击“ Apps G Suite Calendar 单击Sharing settings 选择External sharing options for primary calendars ,然后Share all information, and outsiders can change calendars 这样可以为组织外部的帐户(例如服务帐户)提供写访问权限。

    如有必要,请对Google表格重复上述步骤。

结论

上一篇文章描述了自动化工作流程的背景,而本篇文章则列出了必要的配置步骤:Trello Webhook和Google服务帐户。 虽然没有什么比平常的要好,但是如果以前不知道这些事实,则需要花费一些时间来研究上述事实。

翻译自: https://blog.frankel.ch/automating-conference-submission-workflow/2/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值