Memerlukan otorisasi
Memperbarui item linimasa di tempatnya. Lihat contoh.
Metode ini mendukung URI /upload dan menerima media yang diupload dengan karakteristik berikut:
- Ukuran file maksimum: 10 MB
- Jenis MIME Media yang Diterima:
audio/*
,image/*
,video/*
Permintaan
Permintaan HTTP
Metode ini menyediakan fungsi upload media melalui dua URI terpisah. Untuk mengetahui detail selengkapnya, lihat dokumen tentang upload media.
- URI upload, untuk permintaan upload media:
PUT https://www.googleapis.com/upload/mirror/v1/timeline/id
- URI Metadata, untuk permintaan khusus metadata:
PUT https://www.googleapis.com/mirror/v1/timeline/id
Parameter
Nama parameter | Nilai | Deskripsi |
---|---|---|
Parameter jalur | ||
id |
string |
ID item linimasa. |
Parameter kueri yang diperlukan | ||
uploadType |
string |
Jenis permintaan upload ke URI /upload.
Nilai yang dapat diterima adalah:
|
Otorisasi
Permintaan ini memerlukan otorisasi dengan setidaknya satu cakupan berikut (baca selengkapnya tentang autentikasi dan otorisasi).
Cakupan |
---|
https://www.googleapis.com/auth/glass.timeline |
https://www.googleapis.com/auth/glass.location |
Isi permintaan
Dalam isi permintaan, sediakan resource Linimasa dengan properti berikut sebagai metadata. Untuk mengetahui informasi selengkapnya, lihat dokumen tentang upload media.
Nama properti | Nilai | Deskripsi | Catatan |
---|---|---|---|
Properti Opsional | |||
bundleId |
string |
ID paket untuk item ini. Layanan dapat menentukan bundleId untuk mengelompokkan banyak item sekaligus. Item-item tersebut muncul pada satu item tingkat atas di perangkat. | dapat ditulis |
canonicalUrl |
string |
URL kanonis yang mengarah ke versi kanonis/kualitas data data yang diwakili oleh item linimasa. | dapat ditulis |
creator |
nested object |
Pengguna atau grup yang membuat item ini. | dapat ditulis |
displayTime |
datetime |
Waktu yang akan ditampilkan saat item ini dilihat di linimasa, diformat sesuai dengan RFC 3339. Linimasa pengguna ini diurutkan secara kronologis pada waktu tampilan, sehingga juga akan menentukan tempat item ditampilkan di linimasa. Jika tidak disetel oleh layanan, waktu tampilan akan ditetapkan secara default ke waktu updated . |
dapat ditulis |
html |
string |
Konten HTML untuk item ini. Jika text dan html diberikan untuk satu item, html akan dirender dalam linimasa. Elemen HTML yang diizinkan - Anda dapat menggunakan elemen ini di kartu linimasa.
Elemen HTML yang diblokir: Elemen ini dan kontennya dihapus dari payload HTML.
Elemen lainnya: Elemen apa pun yang tidak tercantum akan dihapus, tetapi kontennya dipertahankan. |
dapat ditulis |
isBundleCover |
boolean |
Apakah item ini merupakan sampul paket. Jika item ditandai sebagai sampul paket, item tersebut akan menjadi titik entri ke paket item yang memiliki bundleId yang sama dengan item tersebut. Tugas hanya akan ditampilkan di linimasa utama — bukan dalam paket yang terbuka.Pada linimasa utama, item yang ditampilkan adalah:
|
dapat ditulis |
location |
nested object |
Lokasi geografis yang terkait dengan item ini. | dapat ditulis |
menuItems[] |
list |
Daftar item menu yang akan ditampilkan kepada pengguna saat item ini dipilih di linimasa. | dapat ditulis |
menuItems[].action |
string |
Mengontrol perilaku ketika pengguna memilih opsi menu. Nilai yang diizinkan adalah:
|
dapat ditulis |
menuItems[].id |
string |
ID untuk item menu ini. Ini dibuat oleh aplikasi dan diperlakukan sebagai token buram. | dapat ditulis |
menuItems[].payload |
string |
Payload umum yang artinya berubah bergantung pada tindakan Polyline ini.
|
dapat ditulis |
menuItems[].removeWhenSelected |
boolean |
Jika disetel ke benar pada item menu CUSTOM , item tersebut akan dihapus dari menu setelah dipilih. |
dapat ditulis |
menuItems[].values[] |
list |
Untuk item CUSTOM , daftar nilai yang mengontrol tampilan item menu di setiap statusnya. Nilai untuk status DEFAULT harus diberikan. Jika status PENDING atau CONFIRMED tidak ada, status tersebut tidak akan ditampilkan. |
dapat ditulis |
menuItems[].values[].displayName |
string |
Nama yang akan ditampilkan untuk item menu. Jika Anda menentukan properti ini untuk item menu bawaan, perintah suara kontekstual default untuk item menu tersebut tidak akan ditampilkan. | dapat ditulis |
menuItems[].values[].iconUrl |
string |
URL ikon yang akan ditampilkan dengan item menu. | dapat ditulis |
menuItems[].values[].state |
string |
Status tempat nilai ini diterapkan. Nilai yang diizinkan adalah:
|
dapat ditulis |
notification |
nested object |
Mengontrol cara notifikasi untuk item ini ditampilkan di perangkat. Jika informasi ini tidak ada, tidak ada notifikasi yang akan dibuat. | dapat ditulis |
notification.deliveryTime |
datetime |
Waktu pengiriman notifikasi. | dapat ditulis |
notification.level |
string |
Menjelaskan seberapa penting notifikasi tersebut. Nilai yang diizinkan adalah:
|
dapat ditulis |
recipients[] |
list |
Daftar pengguna atau grup yang diajak berbagi item ini. | dapat ditulis |
sourceItemId |
string |
String buram yang dapat Anda gunakan untuk memetakan item linimasa ke data dalam layanan Anda sendiri. | dapat ditulis |
speakableText |
string |
Versi konten yang dapat diucapkan dari item ini. Bersama dengan item menu READ_ALOUD , gunakan kolom ini untuk memberikan teks yang lebih jelas saat dibacakan secara lisan, atau untuk memberikan informasi yang diperluas tentang apa yang ditampilkan secara visual di Glass.Glassware juga harus menentukan kolom speakableType, yang akan diucapkan sebelum teks ini jika konteks tambahan berguna, misalnya saat pengguna meminta item dibacakan dengan keras setelah notifikasi. |
dapat ditulis |
speakableType |
string |
Deskripsi yang dapat diucapkan tentang jenis item ini. Ini akan diumumkan kepada pengguna sebelum membaca konten item jika konteks tambahan berguna, misalnya saat pengguna meminta agar item dibacakan secara lisan setelah notifikasi disampaikan. Ini harus berupa frasa kata benda singkat dan sederhana seperti "Email", "SMS", atau "Info Terbaru Planet Harian". Glassware sebaiknya mengisi kolom ini untuk setiap item linimasa, meskipun item tersebut tidak berisi speakableText atau teks sehingga pengguna dapat mempelajari jenis item tanpa melihat layar. |
dapat ditulis |
text |
string |
Konten teks item ini. | dapat ditulis |
title |
string |
Judul item ini. | dapat ditulis |
Tanggapan
Jika berhasil, metode ini menampilkan resource Linimasa dalam isi respons.
Contoh
Catatan: Contoh kode yang tersedia untuk metode ini tidak merepresentasikan semua bahasa pemrograman yang didukung (lihat halaman library klien untuk mengetahui daftar bahasa yang didukung).
Java
Menggunakan library klien Java.
import com.google.api.services.mirror.Mirror; import com.google.api.services.mirror.model.NotificationConfig; import com.google.api.services.mirror.model.TimelineItem; import java.io.IOException; public class MyClass { // ... /** * Update a timeline item in the user's Glass with an optional notification and attachment. * * @param service Authorized Mirror service. * @param itemId ID of the timeline item to update. * @param newText timeline item's text. * @param newNotificationLevel Optional notification level, supported values * are {@code null} and "AUDIO_ONLY". * @return Updated timeline item on success, {@code null} otherwise. */ public static TimelineItem updateTimelineItem(Mirror service, String itemId, String newText, String newNotificationLevel) { try { // First retrieve the timeline item from the API. TimelineItem timelineItem = service.timeline().get(itemId).execute(); // Update the timeline item's metadata. timelineItem.setText(newText); if (newNotificationLevel != null && newNotificationLevel.length() > 0) { timelineItem.setNotification(new NotificationConfig().setLevel(newNotificationLevel)); } else { timelineItem.setNotification(null); } return service.timeline().update(itemId, timelineItem).execute(); } catch (IOException e) { System.err.println("An error occurred: " + e); return null; } } // ... }
.NET
Menggunakan library klien.NET.
using System; using System.IO; using Google.Apis.Mirror.v1; using Google.Apis.Mirror.v1.Data; public class MyClass { // ... /// <summary> /// Update a timeline item in the user's Glass with an optional /// notification and attachment. /// </summary> /// <param name='service'>Authorized Mirror service.</param> /// <param name='itemId'>ID of the timeline item to update.</param> /// <param name='newText'>Timeline Item's text content.</param> /// <param name='newNotificationLevel'> /// Optional notification level, supported values are null and /// "AUDIO_ONLY". /// </param> /// <returns> /// Updated timeline item on success, null otherwise. /// </returns> public static TimelineItem UpdateTimelineItem(MirrorService service, String itemId, String newText, String newNotificationLevel) { try { // First retrieve the timeline item from the API. TimelineItem timelineItem = service.Timeline.Get(itemId).Fetch(); // Update the timeline item's metadata. timelineItem.Text = newText; if (!String.IsNullOrEmpty(newNotificationLevel)) { timelineItem.Notification = new NotificationConfig() { Level = newNotificationLevel }; } else { timelineItem.Notification = null; } return service.Timeline.Update(timelineItem, itemId).Fetch(); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); return null; } } // ... }
PHP
Menggunakan library klien PHP.
/** * Update a timeline item in the user's Glass with an optional * notification and attachment. * * @param Google_MirrorSservice $service Authorized Mirror service. * @param string $itemId ID of the timeline item to update. * @param string $newText timeline item's text (can be HTML content). * @param string $newNotificationLevel Optional notification level, * supported values are {@code null} and "AUDIO_ONLY". * @return Google_TimelineItem Updated timeline item on success, * null otherwise. */ function updateTimelineItem($service, $itemId, $newText, $newNotificationLevel) { try { $timelineItem = $service->timeline->get($itemId); $timelineItem->setText($newText); if ($notificationlevel != null) { $notification = new Google_NotificationConfig(); $notification->setLevel($newNotificationLevel); $timelineItem->setNotification($notification); } else { $timelineItem->setNotification(null); } return $service->timeline->update($itemId, $timelineItem); } catch (Exception $e) { print 'An error occurred: ' . $e->getMessage(); return null; } }
Python
Menggunakan library klien Python.
import io from apiclient import errors from apiclient.http import MediaIoBaseUpload # ... def update_timeline_item(service, item_id, new_text, new_notification_level=None): """Update a timeline item in the user's Glass. Args: service: Authorized Mirror service. item_id: ID of the timeline item to update. new_text: Timeline item's text (can be HTML content). new_content_type: Optional attachment's content type (supported content types are 'image/*', 'video/*' and 'audio/*'). new_attachment: Optional attachment as data string. new_notification_level: Optional notification level, supported values are None and 'AUDIO_ONLY'. Returns: Updated timeline item on success, None otherwise. """ try: # First retrieve the timeline item from the API. timeline_item = service.timeline().get(id=item_id).execute() # Update the timeline item's metadata. timeline_item['text'] = new_text if new_notification_level: timeline_item['notification'] = {'level': new_notification_level} elif 'notification' in timeline_item: timeline_item.pop('notification') return service.timeline().update(id=item_id, body=timeline_item).execute() except errors.HttpError, error: print 'An error occurred: %s' % error return None
Ruby
Menggunakan library klien Ruby.
## # Update a timeline item in the user's glass. # # @param [Google::APIClient] client # Authorized client instance. # @param [String] item_id # ID of the timeline item to update. # @param [String] new_text # Timeline item's new text. # @param [String] new_notification_level # Optional new notification level, supported values are nil and 'AUDIO_ONLY'. # @return [Google::APIClient::Schema::Mirror::V1::TimelineItem] # Updated timeline item instance if successful, nil otherwise. def update_timeline_item(client, item_id, new_text, new_notification_level) mirror = client.discovered_api('mirror', 'v1') result = client.execute( :api_method => mirror.timeline.get, :parameters => { 'id' => item_id }) if result.success? timeline_item = result.data timeline_item.text = new_text if new_notification_level timeline_item.notification = { 'level' => new_notification_level } else timeline_item.notification = nil end result = client.execute( :api_method => mirror.timeline.update, :body_object => timeline_item, :parameters => { 'id' => item_id }) if result.success? return result.data end end puts "An error occurred: #{result.data['error']['message']}" end
Go
Menggunakan library klien Go.
import ( "code.google.com/p/google-api-go-client/mirror/v1" "fmt" ) // UpdateTimelineItem updates a timeline item in the user's timeline with an // optional notification and attachment. func UpdateTimelineItem(g *mirror.Service, itemId string, newNotificationLevel string) ( *mirror.TimelineItem, error) { t, err := g.Timeline.Get(itemId).Do() if err != nil { fmt.Printf("An error occurred: %v\n", err) return nil, err } t.Text = newText if newNotificationLevel != "" { t.Notification = &mirror.NotificationConfig{Level: newNotificationLevel} } else { t.Notification = nil } r, err := g.Timeline.Update(itemId, t).Do() if err != nil { fmt.Printf("An error occurred: %v\n", err) return nil, err } return r, nil }
HTTP Mentah
Tidak menggunakan library klien.
PUT /mirror/v1/timeline/timeline item id HTTP/1.1 Host: www.googleapis.com Authorization: Bearer auth token Content-Type: application/json Content-Length: 26 { "text": "Hello world" }