Я создаю скрипт, который уведомит хипчатскую комнату об изменениях в задачах, комментариях и т. Д. В Асане.
Я столкнулся с тремя простыми проблемами, но я застрял и думал, что некоторые из вас могут мне помочь.
Проблема №1: Проблема, с которой я сталкиваюсь, заключается в том, что когда кто-то (пользователь) получает «упоминание или гиперссылку» в комментарии, я получаю случайный URL-адрес с номерами, которые я не могу назвать идентификатором пользователя или чем-либо еще. Может быть, есть логика, которую я не вижу?
То же самое с гиперссылками для задач и проектов? Не могли бы вы посоветовать, каков первый номер URL-адреса и второй?
См. Ниже ответ, который я получаю, когда получаю рассказ от Asana API [8] => Array ([id] => 10976152589055 [created_at] => 2014-03-15T04: 51: 40.831Z [created_by] => Array ([id] => 203288254516 [name] => Juan Martitegui)
[type] => comment [text] => https://app.asana.com/0/639593560275/639593560275Â testing.
https://app.asana.com/0/241863293563 / 241863293563Â тестирование. https://app.asana.com/0/591143197873 / 591143197873Â тестирование.
[*] последние 3 URL-адреса относятся к ПОЛЬЗОВАТЕЛЮ!
Мне нужно, чтобы я в уведомлении мог напомнить имя пользователя.
Проблема № 2: Чтобы увидеть, какие задачи были обновлены .. Я проверяю временную метку «модификация», а затем публикую все истории этих задач в комнате аккуратным, понятным способом. Проблема в том, что я создаю новую задачу … без ее модификации .., которая не создает «историю», поэтому мое «уведомление» будет пустым. Любая работа вокруг?
Проблема № 3: Есть ли способ поиска всех измененных задач в рабочей области в последний день (независимо от пользователя) или даже лучше всех измененных историй рабочего пространства в последний день, например?
Дай мне знать, пожалуйста!
Спасибо.
Код, который я использую сейчас, выглядит следующим образом:
$ api = 'xxxxxxx'; $ api_url = 'https://app.asana.com/api/1.0'; $ url = 'https://app.asana.com/api/1.0/tasks/10976287567521/stories'; // workspaces / 203178557772 / tasks? assignee = 203288254516 & completed_since = now // задачи / 203288254519 / истории $ curl = curl_init (); curl_setopt ($ curl, CURLOPT_URL, $ url); curl_setopt ($ curl, CURLOPT_RETURNTRANSFER, true); // Не печатать результат curl_setopt ($ curl, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt ($ curl, CURLOPT_TIMEOUT, 30); curl_setopt ($ curl, CURLOPT_FAILONERROR, true); curl_setopt ($ curl, CURLOPT_SSL_VERIFYPEER, 0); // Не проверяйте соединение SSL curl_setopt ($ curl, CURLOPT_SSL_VERIFYHOST, 0); // "" "" curl_setopt ($ curl, CURLOPT_USERPWD, $ api); curl_setopt ($ curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt ($ curl, CURLOPT_HTTPHEADER, array ("Content-Type: application / json")); // $ data = array ( // "data" => array ( // "workspace" => "203178557772", // «name» => «Имя задачи», // «notes» => «notes», // «цессионарий» => «203288254516» //) //); // $ data = json_encode ($ data); // curl_setopt ($ curl, CURLOPT_POST, true); // curl_setopt ($ curl, CURLOPT_POSTFIELDS, $ data); $ html = curl_exec ($ curl); curl_close ($ завиток); $ html = json_decode ($ html, true); echo $ url. '
«; print_r ($ HTML);
Это (как вы отчетливо наблюдаете) действительно три отдельных вопроса (или, ну, два), поэтому я отвечу на тот, который находится в названии 🙂
Итак, ответ на ваш первый вопрос – это причуда того, как мы представляем ссылки на пользователей в Асане – мы фактически ссылаемся на проект «Назначено мне» этого человека. К сожалению, пока еще нет удобного способа сопоставления этих данных в API, но на самом деле это то, над чем мы работаем, но мы еще не готовы опубликовать решение, поэтому вам придется ждать этого Я боюсь.
Кроме того, вы можете захотеть проверить modified_since
в документах API (вы найдете его в разделе «Запрос для задач»).