Asana API - 获取工作区中的所有附件(+ view_url 参数)
Asana API - GET all Attachments in a Workspace (+ the view_url param)
我想知道是否有办法获取 Asana 工作区的所有附件 view_urls。我工作的公司正在寻求对他们的 Asana 附件进行全面扫描,以确保在完成的 Asana 任务中不会丢失应该保存在适当文件存储(即 Google 驱动器)中的所有内容。
我一直在参考 Asana API 文档,但它似乎并不是特别常见的东西 - 我希望这不是不可能的(或者,非常耗时) .
我一直在通过 cURL 访问 API,这对简单的调用很有用,但我发现它对详细的请求有点限制。
节点包装器使某些调用更容易(例如,检索基于受让人的所有任务);但在附件方面有相当大的局限性。
我一直在尝试进行概念验证,但运气不佳。
目前节点实现如下所示:
let asana = require("asana")
let client =
asana.Client.create().useAccessToken('0/##########################(this
is properly populated, normally))
client.users.me()
.then(user => {
const userId = user.id;
const workspaceId = user.workspaces[0].id;
//this part works fine
return client.tasks.findAll({
workspace: workspaceId,
assignee: userId,
opt_fields: 'id,name'
});
})
.then(response => {
//this is working as expected
console.log(response.data)
//this is working as expected too...
let taskArray = response.data
taskArray.forEach(task => {
console.log(task.id)
})
return taskArray.id
}
).catch(e => {
console.log(e.value.errors)
})
这反馈了我当时 运行 的 taskIds 数组:
tasks.forEach(task => {
client.attachments.findByTask(task.id)
.then(response => {
console.log(response.data)
return client.attachments.findById(response.data.id, {
// I can't seem to retrieve the urls...
opt_fields: 'view_url,download_url'
})
}).then(response => {
console.log(response.data)
})
})
想通了 - 在上面发布的迭代中做了很多我不需要做的事情。最终,仍然有一些工作必须手动完成——但没有什么特别耗时的。这是有效的方法:
client.users.me()
.then(user => {
const userId = user.id;
const workspaceId = user.workspaces[0].id;
//this part works fine
return client.tasks.findByProject(support, {
opt_fields: 'id,name'
});
})
.then(collection => {
//this is working as expected too...
let taskArray = collection.stream().on('data', task => {
console.log(task.id)
client.attachments.findByTask(task.id, {
opt_fields: 'id, view_url, download_url, permanent_url'
}).then(attachment => {
console.log(attachment.data)
return attachment.data
})
})
return taskArray.json()
}
).then(tasks => {
console.log(tasks.permanent_url)
}
).catch(e => {
console.log(e.value)
})
我想知道是否有办法获取 Asana 工作区的所有附件 view_urls。我工作的公司正在寻求对他们的 Asana 附件进行全面扫描,以确保在完成的 Asana 任务中不会丢失应该保存在适当文件存储(即 Google 驱动器)中的所有内容。
我一直在参考 Asana API 文档,但它似乎并不是特别常见的东西 - 我希望这不是不可能的(或者,非常耗时) .
我一直在通过 cURL 访问 API,这对简单的调用很有用,但我发现它对详细的请求有点限制。
节点包装器使某些调用更容易(例如,检索基于受让人的所有任务);但在附件方面有相当大的局限性。
我一直在尝试进行概念验证,但运气不佳。
目前节点实现如下所示:
let asana = require("asana")
let client =
asana.Client.create().useAccessToken('0/##########################(this
is properly populated, normally))
client.users.me()
.then(user => {
const userId = user.id;
const workspaceId = user.workspaces[0].id;
//this part works fine
return client.tasks.findAll({
workspace: workspaceId,
assignee: userId,
opt_fields: 'id,name'
});
})
.then(response => {
//this is working as expected
console.log(response.data)
//this is working as expected too...
let taskArray = response.data
taskArray.forEach(task => {
console.log(task.id)
})
return taskArray.id
}
).catch(e => {
console.log(e.value.errors)
})
这反馈了我当时 运行 的 taskIds 数组:
tasks.forEach(task => {
client.attachments.findByTask(task.id)
.then(response => {
console.log(response.data)
return client.attachments.findById(response.data.id, {
// I can't seem to retrieve the urls...
opt_fields: 'view_url,download_url'
})
}).then(response => {
console.log(response.data)
})
})
想通了 - 在上面发布的迭代中做了很多我不需要做的事情。最终,仍然有一些工作必须手动完成——但没有什么特别耗时的。这是有效的方法:
client.users.me()
.then(user => {
const userId = user.id;
const workspaceId = user.workspaces[0].id;
//this part works fine
return client.tasks.findByProject(support, {
opt_fields: 'id,name'
});
})
.then(collection => {
//this is working as expected too...
let taskArray = collection.stream().on('data', task => {
console.log(task.id)
client.attachments.findByTask(task.id, {
opt_fields: 'id, view_url, download_url, permanent_url'
}).then(attachment => {
console.log(attachment.data)
return attachment.data
})
})
return taskArray.json()
}
).then(tasks => {
console.log(tasks.permanent_url)
}
).catch(e => {
console.log(e.value)
})