【发布时间】:2014-04-20 15:22:47
【问题描述】:
我正在构建一个脚本,它将通知 hipchat 房间有关 Asana 中任务、cmets 等的更改。
我面临 3 个简单的问题,但我被困住了,我想也许你们中的一些人可以帮助我。
问题 #1: 我面临的问题是,当某人(用户)在评论中“提及或超链接”时,我会得到一个带有数字的随机 URL,我对用户 ID 或任何东西都无能为力。 也许有一个我没有看到的逻辑?
任务和项目的超链接是否相同? 能否请教一下网址的第一个数字和第二个数字是多少?
当我从 Asana API 获得故事时,请参阅下面的响应 [8] => 数组 ( [id] => 10976152589055 [created_at] => 2014-03-15T04:51:40.831Z [created_by] => 数组 ( [id] => 203288254516 [名称] => 胡安·马蒂吉 )
[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'; // 工作区/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")); // $数据 = 数组( // “数据” => 数组( // "工作区" => "203178557772", // "名称" => "任务名称", // "笔记" => "笔记", // “受让人” => “203288254516” // ) // ); // $data = json_encode($data); // curl_setopt($curl, CURLOPT_POST, true); // curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $html = curl_exec($curl); curl_close($curl); $html = json_decode($html, true); 回声 $url 。 ''; print_r($html);
【问题讨论】: