附件ID,逻辑

时间:2014-04-01 19:40:20

标签: google-glass google-mirror-api

我有一张卡片,带有这个

    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以避免在上传文件时出现奇怪的卡片?

1 个答案:

答案 0 :(得分:1)

这取决于具体用途。一些框架允许附件与卡片的HTML同时上传,因此您可以确定订单并确保一切都可用。

如果您要单独上传附件,则使用上传后返回的附件ID是有意义的,因为您有这些信息。

很好的想法,但是我不会去玩 notification.deliveryTime ,因为它在我尝试使用它的时候并没有很好地工作。相反,您可能希望使用一些文本发布原始卡片,例如&#34;正在加载...&#34;并且根本不发送通知。然后,在上传附件时,更新卡片以引用附件并设置通知,以便生成音频。

<强>更新 正如您所注意到的那样,您无法上传附件并将其附加到多张卡片上,原因与您无法创建单个时间轴项目并将其发送给多个人一样 - 安全性。附件&#34;属于&#34;与时间轴项目相同的时间轴项目&#34;属于&#34;对一个人这有点类似于电子邮件和附件 - 一旦您发送电子邮件,每封电子邮件都有自己的附件副本。