Yetkilendirme gerektirir
Zaman çizelgesine yeni bir öğe ekler. Örneğe göz atın
Bu yöntem, bir /upload URI'sini destekler ve aşağıdaki özelliklere sahip yüklenen medyaları kabul eder:
- Maksimum dosya boyutu: 10 MB
- Kabul edilen Medya MIME türleri:
image/*
,audio/*
,video/*
Yüklenen medya, sağlanırsa zaman çizelgesi öğesine ek olarak eklenir.
İstek
HTTP isteği
Bu yöntem, iki ayrı URI üzerinden medya yükleme işlevi sağlar. Daha fazla bilgi için medya yükleme dokümanını inceleyin.
- Medya yükleme istekleri için yükleme URI'si:
POST https://www.googleapis.com/upload/mirror/v1/timeline
- Yalnızca meta veri istekleri için meta veri URI'si:
POST https://www.googleapis.com/mirror/v1/timeline
Parametreler
Parametre adı | Değer | Açıklama |
---|---|---|
Gerekli sorgu parametreleri | ||
uploadType |
string |
/upload URI'sine yükleme isteğinin türü.
Kabul edilebilir değerler şunlardır:
|
Yetkilendirme
Bu istek için aşağıdaki kapsamlardan en az birinin yetkilendirilmesi gerekir (kimlik doğrulama ve yetkilendirme hakkında daha fazla bilgi edinin).
Kapsam |
---|
https://www.googleapis.com/auth/glass.timeline |
https://www.googleapis.com/auth/glass.location |
İstek metni
İstek gövdesinde, meta veri olarak aşağıdaki özellikleri içeren bir Zaman Çizelgesi kaynağı sağlayın. Daha fazla bilgi için medya yükleme dokümanını inceleyin.
Mülk adı | Değer | Açıklama | Notlar |
---|---|---|---|
İsteğe Bağlı Özellikler | |||
bundleId |
string |
Bu öğenin paket kimliği. Hizmetler, birçok öğeyi birlikte gruplandırmak için bir paket kimliği belirtebilir. Cihazda tek bir üst düzey öğenin altında görünür. | yazılabilir |
canonicalUrl |
string |
Zaman çizelgesi öğesi tarafından temsil edilen verilerin standart/yüksek kaliteli sürümünü gösteren standart URL. | yazılabilir |
creator |
nested object |
Bu öğeyi oluşturan kullanıcı veya grup. | yazılabilir |
displayTime |
datetime |
Bu öğe zaman çizelgesinde görüntülendiğinde gösterilmesi gereken zaman (RFC 3339'a göre biçimlendirilmiştir). Bu kullanıcının zaman çizelgesi, görüntüleme zamanında kronolojik olarak sıralanır. Bu nedenle, öğenin zaman çizelgesinde nerede görüntüleneceği de belirlenir. Hizmet tarafından ayarlanmazsa görüntüleme süresi varsayılan olarak updated olur. |
yazılabilir |
html |
string |
Bu öğenin HTML içeriği. Bir öğe için hem text hem de html sağlanmışsa html , zaman çizelgesinde oluşturulur. İzin verilen HTML öğeleri: Bu öğeleri zaman çizelgesi kartlarınızda kullanabilirsiniz.
Engellenen HTML öğeleri: Bu öğeler ve içerikleri, HTML yüklerinden kaldırılır.
Diğer öğeler: Listelenmeyen tüm öğeler kaldırılır ancak içerikleri korunur. |
yazılabilir |
isBundleCover |
boolean |
Bu öğenin bir paketin olup olmadığı. Bir öğe paket kapağı olarak işaretlenirse bu öğe, aynı öğeyle aynı bundleId öğesine sahip olan öğe grubunun giriş noktası olur. Yalnızca ana zaman çizelgesinde gösterilir (açık pakette değil).Ana zaman çizelgesinde şu öğeler gösteriliyor:
|
yazılabilir |
location |
nested object |
Bu öğeyle ilişkilendirilen coğrafi konum. | yazılabilir |
menuItems[] |
list |
Bu öğe, zaman çizelgesinde seçildiğinde kullanıcıya sunulacak menü öğelerinin listesidir. | yazılabilir |
menuItems[].action |
string |
Kullanıcı menü seçeneğini belirlediğinde davranışı denetler. İzin verilen değerler şunlardır:
|
yazılabilir |
menuItems[].id |
string |
Bu menü öğesinin kimliği. Bu uygulama tarafından oluşturulur ve opak jeton olarak kabul edilir. | yazılabilir |
menuItems[].payload |
string |
Bu Menü Öğesinin işlemine bağlı olarak anlamı değişen genel bir yük.
|
yazılabilir |
menuItems[].removeWhenSelected |
boolean |
CUSTOM menü öğesinde true (doğru) değerine ayarlanırsa, öğe seçildikten sonra menüden kaldırılır. |
yazılabilir |
menuItems[].values[] |
list |
CUSTOM öğeleri için menü öğesinin her bir durumundaki görünümünü kontrol eden bir değer listesi. DEFAULT durumu için bir değer sağlanmalıdır. Eksik PENDING veya CONFIRMED durumları gösterilmez. |
yazılabilir |
menuItems[].values[].displayName |
string |
Menü öğesi için görüntülenecek ad. Yerleşik bir menü öğesi için bu özelliği belirtirseniz söz konusu menü öğesi için varsayılan içeriğe dayalı sesli komut gösterilmez. | yazılabilir |
menuItems[].values[].iconUrl |
string |
Menü öğesiyle birlikte görüntülenecek bir simgenin URL'si. | yazılabilir |
menuItems[].values[].state |
string |
Bu değerin geçerli olduğu durum. İzin verilen değerler şunlardır:
|
yazılabilir |
notification |
nested object |
Bu öğeye yönelik bildirimlerin cihazda nasıl sunulacağını kontrol eder. Bu eksikse bildirim oluşturulmaz. | yazılabilir |
notification.deliveryTime |
datetime |
Bildirimin iletileceği zaman. | yazılabilir |
notification.level |
string |
Bildirimin ne kadar önemli olduğunu açıklar. İzin verilen değerler şunlardır:
|
yazılabilir |
recipients[] |
list |
Bu öğenin paylaşıldığı kullanıcıların veya grupların listesi. | yazılabilir |
sourceItemId |
string |
Zaman çizelgesi öğesini kendi hizmetinizdeki verilerle eşlemek için kullanabileceğiniz opak dize. | yazılabilir |
speakableText |
string |
Bu öğenin içeriğinin söylenebilir sürümü. Sesli okunurken daha net olacak metin sağlamak veya Glass'ta görsel olarak gösterilenlere genişletilmiş bilgiler sağlamak için READ_ALOUD menü öğesinin yanı sıra bu alanı kullanın.Glassware ayrıca ek bağlamın faydalı olduğu durumlarda (ör. kullanıcı, bildirimin ardından öğenin sesli okunmasını istediğinde) bu metinden önce söylenecek talkableType alanını da belirtmelidir. |
yazılabilir |
speakableType |
string |
Bu öğenin türünün sesli söylenebilir açıklaması. Bu bilgiler, ek bağlamın faydalı olduğu durumlarda (ör. kullanıcı, bildirimin ardından öğenin sesli okunmasını istediği durumlarda) öğenin içeriğini okumadan önce kullanıcıya bildirilir. Bu, "E-posta", "Kısa mesaj" veya "Günlük Gezegen Haber Güncellemesi" gibi kısa ve basit bir isim ifadesi olmalıdır. Öğe bardaklı metin veya metin içermese bile kullanıcı ekrana bakmadan öğenin türünü öğrenebilmesi için cam eşyasının bu zaman çizelgesi öğesi için bu alanı doldurması önerilir. |
yazılabilir |
text |
string |
Bu öğenin metin içeriği. | yazılabilir |
title |
string |
Bu öğenin başlığı. | yazılabilir |
Yanıt
Başarılı olursa bu yöntem yanıt gövdesinde bir Zaman çizelgesi kaynağı döndürür.
Örnekler
Not: Bu yöntem için kullanıma sunulan kod örnekleri, desteklenen tüm programlama dillerini kapsamaz (Desteklenen dillerin listesi için istemci kitaplıkları sayfasını inceleyin).
Java
Java istemci kitaplığını kullanır.
import com.google.api.client.http.InputStreamContent; 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; import java.io.InputStream; public class MyClass { // ... /** * Insert a new timeline item in the user's glass with an optional * notification and attachment. * * @param service Authorized Mirror service. * @param text timeline item's text. * @param contentType Optional attachment's content type (supported content * types are "image/*", "video/*" and "audio/*"). * @param attachment Optional attachment stream. * @param notificationLevel Optional notification level, supported values are * {@code null} and "AUDIO_ONLY". * @return Inserted timeline item on success, {@code null} otherwise. */ public static TimelineItem insertTimelineItem(Mirror service, String text, String contentType, InputStream attachment, String notificationLevel) { TimelineItem timelineItem = new TimelineItem(); timelineItem.setText(text); if (notificationLevel != null && notificationLevel.length() > 0) { timelineItem.setNotification(new NotificationConfig().setLevel(notificationLevel)); } try { if (contentType != null && contentType.length() > 0 && attachment != null) { // Insert both metadata and attachment. InputStreamContent mediaContent = new InputStreamContent(contentType, attachment); return service.timeline().insert(timelineItem, mediaContent).execute(); } else { // Insert metadata only. return service.timeline().insert(timelineItem).execute(); } } catch (IOException e) { System.err.println("An error occurred: " + e); return null; } } // ... }
.NET
.NET istemci kitaplığını kullanır.
using System; using System.IO; using Google.Apis.Mirror.v1; using Google.Apis.Mirror.v1.Data; public class MyClass { // ... /// <summary> /// Insert a new timeline item in the user's glass with an optional /// notification and attachment. /// </summary> /// <param name='service'>Authorized Mirror service.</param> /// <param name='text'>Timeline Item's text.</param> /// <param name='contentType'> /// Optional attachment's content type (supported content types are /// "image/*", "video/*" and "audio/*"). /// </param> /// <param name='attachment'>Optional attachment stream</param> /// <param name='notificationLevel'> /// Optional notification level, supported values are null and /// "AUDIO_ONLY". /// </param> /// <returns> /// Inserted timeline item on success, null otherwise. /// </returns> public static TimelineItem InsertTimelineItem(MirrorService service, String text, String contentType, Stream attachment, String notificationLevel) { TimelineItem timelineItem = new TimelineItem(); timelineItem.Text = text; if (!String.IsNullOrEmpty(notificationLevel)) { timelineItem.Notification = new NotificationConfig() { Level = notificationLevel }; } try { if (!String.IsNullOrEmpty(contentType) && attachment != null) { // Insert both metadata and media. TimelineResource.InsertMediaUpload request = service.Timeline.Insert( timelineItem, attachment, contentType); request.Upload(); return request.ResponseBody; } else { // Insert metadata only. return service.Timeline.Insert(timelineItem).Fetch(); } } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); return null; } } // ... }
PHP
PHP istemci kitaplığını kullanır.
/** * Insert a new timeline item in the user's glass with an optional * notification and attachment. * * @param Google_MirrorService $service Authorized Mirror service. * @param string $text timeline item's text. * @param string $contentType Optional attachment's content type (supported * content types are "image/*", "video/*" * and "audio/*"). * @param string $attachment Optional attachment content. * @param string $notificationLevel Optional notification level, * supported values are {@code null} * and "AUDIO_ONLY". * @return Google_TimelineItem Inserted timeline item on success, otherwise. */ function insertTimelineItem($service, $text, $contentType, $attachment, $notificationLevel) { try { $timelineItem = new Google_TimelineItem(); $timelineItem->setText($text); if ($notificationlevel != null) { $notification = new Google_NotificationConfig(); $notification->setLevel($notificationLevel); $timelineItem->setNotification($notification); } $optParams = array(); if ($contentType != null && $attachment != null) { $optParams['data'] = $attachment; $optParams['mimeType'] = $contentType; } return $service->timeline->insert($timelineItem, $optParams); } catch (Exception $e) { print 'An error occurred: ' . $e->getMessage(); return null; } }
Python
Python istemci kitaplığını kullanır.
import io from apiclient import errors from apiclient.http import MediaIoBaseUpload # ... def insert_timeline_item(service, text, content_type=None, attachment=None, notification_level=None): """Insert a new timeline item in the user's glass. Args: service: Authorized Mirror service. text: timeline item's text. content_type: Optional attachment's content type (supported content types are 'image/*', 'video/*' and 'audio/*'). attachment: Optional attachment as data string. notification_level: Optional notification level, supported values are None and 'AUDIO_ONLY'. Returns: Inserted timeline item on success, None otherwise. """ timeline_item = {'text': text} media_body = None if notification_level: timeline_item['notification'] = {'level': notification_level} if content_type and attachment: media_body = MediaIoBaseUpload( io.BytesIO(attachment), mimetype=content_type, resumable=True) try: return service.timeline().insert( body=timeline_item, media_body=media_body).execute() except errors.HttpError, error: print 'An error occurred: %s' % error
Ruby
Ruby istemci kitaplığı kullanır.
## # Insert a new Timeline Item in the user's glass. # # @param [Google::APIClient] client # Authorized client instance. # @param [String] text # Timeline item's text. # @param [String] content_type # Optional attachment's content type (supported content types are 'image/*', # 'video/*' and 'audio/*'). # @param [String] filename # Optional attachment's filename. # @param [String] notification_level # Optional notification level, supported values are nil and 'AUDIO_ONLY'. # @return [Google::APIClient::Schema::Mirror::V1::TimelineItem] # Timeline item instance if successful, nil otherwise. def insert_timeline_item(client, text, content_type, filename, notification_level) mirror = client.discovered_api('mirror', 'v1') timeline_item = mirror.timeline.insert.request_schema.new({ 'text' => text }) if notification_level timeline_item.notification = { 'level' => notification_level } end result = nil if filename media = Google::APIClient::UploadIO.new(filename, content_type) result = client.execute( :api_method => mirror.timeline.insert, :body_object => timeline_item, :media => media, :parameters => { 'uploadType' => 'multipart', 'alt' => 'json'}) else result = client.execute( :api_method => mirror.timeline.insert, :body_object => timeline_item) end if result.success? return result.data else puts "An error occurred: #{result.data['error']['message']}" end end
Go
Go istemci kitaplığını kullanır.
import ( "code.google.com/p/google-api-go-client/mirror/v1" "fmt" "io" ) // InsertTimelineItem inserts a new timeline item in the user's glass with an // optional notification and attachment. func InsertTimelineItem(g *mirror.Service, text string, attachment io.Reader, notificationLevel string) (*mirror.TimelineItem, error) { t := &mirror.TimelineItem{Text: text} if notificationLevel != "" { t.Notification = &mirror.NotificationConfig{Level: notificationLevel} } req := g.Timeline.Insert(t) if attachment != nil { // Add attachment to the timeline item. req.Media(attachment) } r, err := req.Do() if err != nil { fmt.Printf("An error occurred: %v\n", err) return nil, err } return r, nil }
Ham HTTP
İstemci kitaplığı kullanmıyor.
## A very simple timeline item POST /mirror/v1/timeline HTTP/1.1 Host: www.googleapis.com Authorization: Bearer auth token Content-Type: application/json Content-Length: 26 { "text": "Hello world" } ## A more complete timeline item with an attachment POST /mirror/v1/timeline HTTP/1.1 Host: www.googleapis.com Authorization: Bearer auth token Content-Type: multipart/related; boundary="mymultipartboundary" Content-Length: length --mymultipartboundary Content-Type: application/json; charset=UTF-8 { "text": "Hello world", "menuItems": [ { "action": "REPLY" }, { "action": "CUSTOM", "id": "complete" "values": [{ "displayName": "Complete", "iconUrl": "http://example.com/icons/complete.png" }] } } --mymultipartboundary Content-Type: image/jpeg Content-Transfer-Encoding: binary binary image data --mymultipartboundary--