使用 URL 链接修改 Asana 任务

Posted

技术标签:

【中文标题】使用 URL 链接修改 Asana 任务【英文标题】:Using URL Links to Modify Asana Tasks 【发布时间】:2020-11-30 12:13:22 【问题描述】:

我们正在使用只读 Asana“项目”来管理我们的设计工作。我们的设计工作被组织为 Asana Tasks。每个任务代表一个不同的设计项目。将其设为只读的原因是为了限制 Asana 用户意外更改项目详细信息,并限制 Asana 用户创建自己的任务,这些任务超出了我们决定的任务标准结构。

为了在 Asana 中创建这些任务,我们结合使用 Cognito 表单和 Zapier 来自动创建任务。我们的客户填写 Cognito 表单,Zapier 会自动为 Asana 填充需要为该特定客户完成的设计任务。

此设置的问题在于,要在 Asana 中移动任务以向团队提供“更新”,要么是具有写入权限的 Asana 用户需要执行此操作,要么是 Asana 用户需要填写表格来制作更改,因为他们只有读取权限。我们希望保持超级简单,我想出了一种使用 Zapier webhook 的方法。

因为我们使用的是 Zapier,所以我可以以任何我想要的方式格式化 URL 链接。我可以创建一个 URL 链接,其中包含 Asana 任务 ID 和任务需要移动到的 Asana 部分。使用 webhook,用户可以单击“更改部分”URL。单击此 URL 将触发 Zapier Zap 操作,然后将更改 Asana 任务部分。用户只需单击该链接即可对该任务进行更新。

我的问题是相当基本的。有没有办法阻止 URL 打开页面,但仍将 URL 中的数据传递给 Zapier?当用户单击链接时,它会打开一个网页,我不希望这种情况发生。或者如果发生这种情况,网页打开后会立即关闭吗?

【问题讨论】:

【参考方案1】:

简短的回答是“不,不可能点击 zapier 链接并让页面无法打开或自动关闭”。


长答案涉及更多。我假设您的网址看起来像 https://hooks.zapier.com/hooks/catch/1234/abcd?name=john&cool=true,允许您将“名称”和“酷”传递给 Zapier。

要将其传递到 Zapier,您需要获取该 URL 的内容,方法是在网络浏览器中加载它或使用其他工具(例如 fetchcurl)调用它。

如果您有一些工程资源,您可以在某个地方托管一个非常简单的 html 页面,该页面可以接受数据并运行一些 javascript。它会做这样的事情:

    从查询字符串中读取 Zapier webhook url(可能值得编码) 在页面加载时,运行await fetch(thatUrl) 指示用户关闭页面(这比从 Zapier 获得的 JSON 或黑色响应更好的用户体验)。我以为 JS 可以关闭任何页面,但事实证明 window.close() 只有在脚本打开页面时才有效(docs)。

所以这是一个不错的解决方法。

【讨论】:

以上是关于使用 URL 链接修改 Asana 任务的主要内容,如果未能解决你的问题,请参考以下文章

把-图片的链接-下载到本地(服务器);

如何修改mysql url链接指定时区

使用 opt_fields 请求时,Asana API 未返回受让人信息

使用 Asana API 正文参数时在 let 正文中添加 IF 逻辑

如何使用 Asana API 获取在 Asana 中创建项目的用户?

可生成/管理/可自定义地址的 短链接URL网站