我有一张卡片,带有这个
try {
$menu_items = array();
$card = new \Google_Service_Mirror_TimelineItem();
//$card->setText("Test");
$card->setHtml('<img src="attachment:0"><img src="attachment:1">');
$menu_item = new \Google_Service_Mirror_MenuItem();
$menu_item->setAction("DELETE");
array_push($menu_items, $menu_item);
$card->setMenuItems($menu_items);
$opt_params = array();
$sr = $this->service->timeline->insert($card, $opt_params);
error_log('Send Card');
error_log(print_r($sr,true));
//return $sr;
$itemId = $sr->getId();
$params = array(
'data' => file_get_contents('https://XXXX.com/1.jpg'),
'mimeType'=>'image/jpg',
'uploadType' => 'media'
);
$sr = $this->service->timeline_attachments->insert($itemId, $params);
error_log('Send Card Attachment');
error_log(print_r($sr,true));
$params = array(
'data' => file_get_contents('https://XXXX.com/2.jpg'),
'mimeType'=>'image/jpg',
'uploadType' => 'media'
);
$sr = $this->service->timeline_attachments->insert($itemId, $params);
error_log('Send Card Attachment');
error_log(print_r($sr,true));
} catch (\Exception $e) {
error_log('Error while sending card '.$e->getMessage());
}
这很有效。
我拿到一张有两张照片的卡片。
文档声明我可以使用附件ID ..背后的逻辑是什么?仅限更新/补丁?
麻生太郎,我猜我是否发送了一张卡,然后我推送了这些文件,我需要在不久的将来设置notification.deliveryTime以避免在上传文件时出现奇怪的卡片?
答案 0 :(得分:1)
这取决于具体用途。一些框架允许附件与卡片的HTML同时上传,因此您可以确定订单并确保一切都可用。
如果您要单独上传附件,则使用上传后返回的附件ID是有意义的,因为您有这些信息。
很好的想法,但是我不会去玩 notification.deliveryTime ,因为它在我尝试使用它的时候并没有很好地工作。相反,您可能希望使用一些文本发布原始卡片,例如&#34;正在加载...&#34;并且根本不发送通知。然后,在上传附件时,更新卡片以引用附件并设置通知,以便生成音频。
<强>更新强> 正如您所注意到的那样,您无法上传附件并将其附加到多张卡片上,原因与您无法创建单个时间轴项目并将其发送给多个人一样 - 安全性。附件&#34;属于&#34;与时间轴项目相同的时间轴项目&#34;属于&#34;对一个人这有点类似于电子邮件和附件 - 一旦您发送电子邮件,每封电子邮件都有自己的附件副本。