Справочная информация
Моя организация использует платформу Asana для координации наших рабочих усилий.Я использовал API Asana для автоматизации ряда наших ежедневных операций, а также для интеграции платформы Asana с другими внешними сервисами, которые мы используем.Я взаимодействую с API Асаны, используя python и библиотеку запросов для выполнения запросов GET, POST и PUT.
Часто мне нужно ПОЛУЧИТЬ или POST для конкретной задачи в Asana, я часто могу достичь этого, используя автоматически сгенерированный идентификатор задачи Asana.
result = requests.get("https://app.asana.com/api/1.0/tasks/task_id", headers)
Однако бывают случаи, когда мне полезно идентифицировать задачу по конкретной информации, хранящейся в ней.Я смог успешно сделать это, сохранив конкретную информацию в метаданных задачи, которые Асана называет «внешними данными».
result = requests.get("https://app.asana.com/api/1.0/tasks/external_id", headers)
Оба эти метода хорошо мне помогли.Однако у меня возникают проблемы с хранением определенных данных во внешних данных задачи, которые я описал в следующем разделе.
Проблема
В настоящее время, когда я сохраняю метаданные во внешней задачеdata мой запрос 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» представляет собой одну строку.Однако согласно документации Асаны здесь «data_value» может на самом деле хранить словарь ключей и значений.Я попытался передать объект словаря, выполнив следующее:
data = {
"data" : {
"name" : "Burgers",
"external" : {
"id" : "external_id",
"data" : {
"data_value" : "some_data",
"data_value_2" : "some_data"
}
}
}
}
Но я продолжаю получать сообщение об ошибке:
"{" errors ": [{"message": "external: data: Value не является строкой: [объект объекта]", "help": "Для получения дополнительной информации о кодах состояния API и о том, как с ними обращаться, ознакомьтесь с документацией об ошибках: https://asana.com/developers/documentation/getting-started/errors"}]}"
Есть идеи, где я ошибаюсь?Кто-нибудь имел успех с этим?