如何使用Asana的外部数据功能存储复杂的元数据

时间:2018-09-28 09:14:22

标签: python api asana

背景

我的组织使用Asana平台来协调我们的工作。我一直在利用Asana的API来自动化我们的许多日常操作,并将Asana的平台与我们使用的其他外部服务集成在一起。我使用python和请求库与Asana的API进行交互,以进行GET,POST和PUT请求。

通常我需要在Asana中进行特定任务的GET或POST,我通常可以使用Asana的自动生成的任务ID来实现。

result = requests.get("https://app.asana.com/api/1.0/tasks/task_id", headers)

但是,有时候通过存储在其中的特定信息对我来说很有用。通过将有问题的特定信息存储在任务的元数据(Asana称为“外部数据”)中,我能够成功地做到这一点。

result = requests.get("https://app.asana.com/api/1.0/tasks/external_id", headers)

这两种方法都对我有用。但是,我在将特定数据存储在任务的外部数据中时遇到麻烦,我将在下面的部分中对此进行概述。

问题

当前,当我将元数据存储在任务外部数据中时,我的PUT / POST请求如下:

header = {
    "Authorization" : "Bearer " + AUTH_TOKEN
}

data = {
    "data" : {
        "name" : "Burgers",
        "external" : {
            "id" : "external_id",
            "data" : "data_value"
        }
    }
}

url = "https://app.asana.com/api/1.0/tasks/task_id"
result = requests.put(url, headers=header, json=data)
return result

这里要注意的重要一点是“ data_value”是一个字符串。但是,根据Asana的文档here,“ data_value”实际上可以存储键和值的字典。我试图通过执行以下操作来传递字典对象:

data = {
    "data" : {
        "name" : "Burgers",
        "external" : {
            "id" : "external_id",
            "data" : {
               "data_value" : "some_data", 
               "data_value_2" : "some_data"
            }
        }
    }
}

但是我继续收到一条错误消息,指出:

  

“ {” errors“:[{” message“:” external:data:值不是字符串:[object Object]“,” help“:”有关API状态码及其处理方式的详细信息,阅读有关错误的文档:https://asana.com/developers/documentation/getting-started/errors“}]}”

有什么想法我要去哪里吗?有人成功吗?

0 个答案:

没有答案