Memerlukan otorisasi
Memperbarui item linimasa yang diterapkan. 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:
|
Otorisasi
Permintaan ini memerlukan otorisasi dengan setidaknya salah satu cakupan berikut (baca lebih lanjut tentang autentikasi dan otorisasi).
Cakupan |
---|
https://www.googleapis.com/auth/glass.timeline |
https://www.googleapis.com/auth/glass.location |
Isi permintaan
Dalam isi permintaan, berikan 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 bersama-sama. Iklan muncul pada satu item tingkat atas di perangkat. | dapat ditulis |
canonicalUrl |
string |
URL kanonis yang mengarah ke versi kanonis/berkualitas tinggi dari data yang direpresentasikan 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, yang diformat sesuai dengan RFC 3339. Linimasa pengguna ini diurutkan secara kronologis dalam waktu tampilan, sehingga hal ini 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 disediakan untuk suatu item, html akan dirender di 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. Item tersebut hanya akan ditampilkan di linimasa utama, bukan di dalam paket yang dibuka.Di 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 saat pengguna memilih opsi menu. Nilai yang diizinkan adalah:
|
dapat ditulis |
menuItems[].id |
string |
ID untuk item menu ini. ID ini dibuat oleh aplikasi dan diperlakukan sebagai token buram. | dapat ditulis |
menuItems[].payload |
string |
Payload umum yang artinya berubah bergantung pada tindakan MenuItem ini.
|
dapat ditulis |
menuItems[].removeWhenSelected |
boolean |
Jika disetel ke benar (true) 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 untuk 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 bagaimana notifikasi untuk item ini ditampilkan di perangkat. Jika informasi ini tidak ada, notifikasi tidak akan dibuat. | dapat ditulis |
notification.deliveryTime |
datetime |
Waktu saat notifikasi harus dikirimkan. | dapat ditulis |
notification.level |
string |
Menjelaskan seberapa penting notifikasi. 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 di layanan Anda sendiri. | dapat ditulis |
speakableText |
string |
Versi lisan dari konten item ini. Bersama dengan item menu READ_ALOUD , gunakan kolom ini untuk memberikan teks yang akan lebih jelas saat dibaca dengan keras, atau untuk memberikan informasi yang diperluas tentang apa yang ditampilkan secara visual di Glass.Gelas juga harus menentukan kolom speechableType, yang akan diucapkan sebelum teks ini jika konteks tambahan berguna, misalnya saat pengguna meminta item dibacakan dengan lantang setelah notifikasi. |
dapat ditulis |
speakableType |
string |
Deskripsi yang dapat diucapkan dari jenis item ini. Hal ini akan diumumkan kepada pengguna sebelum membaca konten item jika konteks tambahan dapat digunakan, misalnya saat pengguna meminta item tersebut dibacakan secara lisan setelah notifikasi. Frasa ini harus berupa frasa kata benda yang singkat dan sederhana seperti "Email", "Pesan teks", atau "Pembaruan Berita Daily Planet". Glassware dianjurkan untuk mengisi kolom ini untuk setiap item linimasa, meskipun item tersebut tidak berisi speechableText 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 |
Respons
Jika berhasil, metode ini akan 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" }