【发布时间】:2015-08-06 06:43:05
【问题描述】:
我正在寻求实现一个解决方案,当我在 Asana 中创建一个项目时,它将在 Slack 中创建一个包含所有相同成员的房间。我计划编写一个脚本,每隔几分钟运行一次以查找任何新项目或更改当前项目的成员资格,然后调用 slack 进行更改。但是,这会引起很多争论,所以我希望有人知道并能够推荐另一种方法,以便根据需要进行这些更改。
【问题讨论】:
我正在寻求实现一个解决方案,当我在 Asana 中创建一个项目时,它将在 Slack 中创建一个包含所有相同成员的房间。我计划编写一个脚本,每隔几分钟运行一次以查找任何新项目或更改当前项目的成员资格,然后调用 slack 进行更改。但是,这会引起很多争论,所以我希望有人知道并能够推荐另一种方法,以便根据需要进行这些更改。
【问题讨论】:
听起来您已经为这个用例概述了最佳解决方案。
为了获取工作区中的新项目列表,您应该查询 projects 端点并根据 created_at 字段检查新创建的项目,使用 opt_fields field selector 将其返回到您的查询中。我强烈建议您将此查询范围限定为单个工作区并使用pagination。
GET 'https://api.asana.com/api/1.0/workspaces/5233820891524/projects?opt_fields=name,created_at&limit=2' | j
{
"data": [
{
"id": 23154287843671,
"created_at": "2014-12-31T18:35:49.695Z",
"name": "Ninja Things"
},
{
"id": 23154287843675,
"created_at": "2014-12-31T18:35:59.174Z",
"name": "Unicorns"
}
],
"next_page": {
"offset": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJib3JkZXJfcmFuayI6ImRTbm5ZaGNOOWFFIiwiaWF0IjoxNDM4ODE0MzY0LCJleHAiOjE0Mzg4MTUyNjR9.82zecHAT51-GSrL6FdcrRdMs45U7PZ3g-d4Zuo_B8UA",
"uri": "https://api.asana.com/api/1.0/workspaces/5233820891524/projects?limit=2&opt_output=json&opt_fields=name%2Ccreated_at&offset=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJib3JkZXJfcmFuayI6ImRTbm5ZaGNOOWFFIiwiaWF0IjoxNDM4ODE0MzY0LCJleHAiOjE0Mzg4MTUyNjR9.82zecHAT51-GSrL6FdcrRdMs45U7PZ3g-d4Zuo_B8UA",
"path": "/workspaces/5233820891524/projects?limit=2&opt_output=json&opt_fields=name%2Ccreated_at&offset=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJib3JkZXJfcmFuayI6ImRTbm5ZaGNOOWFFIiwiaWF0IjoxNDM4ODE0MzY0LCJleHAiOjE0Mzg4MTUyNjR9.82zecHAT51-GSrL6FdcrRdMs45U7PZ3g-d4Zuo_B8UA"
}
}
对于当前项目的新成员,您需要查询各个项目并检查成员资格属性。
我本来建议使用 Events api 来检查新成员,但经过测试并确定新成员不被视为项目中的事件,我们将考虑更改这一点。
【讨论】: