gpt4 book ai didi

python - 如何使用 Python 在 Asana 中创建包含任务的新项目?

转载 作者:太空狗 更新时间:2023-10-30 02:29:49 25 4
gpt4 key购买 nike

我看到一些关于如何使用 API 创建任务的问题,但我想知道如何创建一个新项目。

每次我想创建一个新项目时,我都有预先确定的格式来创建一个新项目。我有一些特定的任务,每个任务都有自己的子任务。现在我在 Asana 上有一个模板,每次我想创建一个新项目时,我都会转到该项目并复制它并将其重命名为我当前的项目。

有没有人知道使用 Python 自动执行此操作的方法,这样我只需运行脚本并输入项目名称的详细信息,它就会自动在 Asana 上创建一个新项目(如果我需要,可以通过这种方式要一次制作 5 个项目,我可以列出所有项目名称并循环遍历所有项目)?

我知道您需要一个 key ,我有一个名为 API_KEY 的东西,它的长度为 32 个字符。

添加:这是我在 Python 中使用的代码,用于访问 Asana 工作区中的所有任务和子任务:

import asana
api_key = '################################' //my private key goes here
client = asana.Client.basic_auth(api_key)
me = client.users.me()
all_projects = next(workspace for workspace in me['workspaces'])
projects = client.projects.find_by_workspace(all_projects['id'], iterator_type=None)

for project in projects:
if 'Template' not in project['name']:
continue
print(project['name'])
project_id = project['id']
tasks = client.tasks.find_by_project(project_id, iterator_type=None)

for task in tasks:
print(" " + task['name'])
task_id = task['id']
task_subtasks = client.tasks.subtasks(task_id, full_payload=True)

for subtask in task_subtasks:
print(" " + subtask['name'])

当我运行它时,我得到了标题中包含"template"一词的项目的所有任务和子任务。所以,这就是阅读方式,如果我将所有这些都保存为 JSON 格式,那么每次我想创建一个新项目时,我都可以上传该 JSON 并获得一个新项目吗?

最佳答案

看起来您正在使用 python-asana客户端库。这个库提供了一个很好的包装器,实现了访问 Asana API 的最佳实践。 .我鼓励您阅读文档以充分理解它的设计和功能。

Creating a project需要工作区或组织的上下文,如果是组织,还需要项目所属团队的上下文。

以下代码使用相同的库在“登月”工作区中创建一个项目,如果该工作区是一个组织,它会将项目放入“宇航员”团队中。

import asana

client = asana.Client.basic_auth('ASANA_API_KEY')

workspaces = client.workspaces.find_all({"opt_fields": "is_organization, name"})

workspace = next(workspace for workspace in workspaces if workspace['name'] == 'Moon Landing')

project = {'name':'Training','workspace': workspace['id']}

if workspace['is_organization'] :
teams = client.teams.find_by_organization(workspace['id'])
team = next(team for team in teams if team['name'] == 'Astronauts')
project['team'] = team['id']

training = client.projects.create(project)

创建“培训”项目后,您就可以像这样向该项目添加任务。

task = client.tasks.create_in_workspace(workspace['id'], {'projects': [training['id']], 'name': 'Learn to fly space craft'})

然后,添加子任务

client.tasks.add_subtask(task['id'], {'name': 'Turning it on'})

关于python - 如何使用 Python 在 Asana 中创建包含任务的新项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30601424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com