Требуется авторизация
Добавляет новое вложение к элементу временной шкалы. См. пример .
Этот метод поддерживает URI /upload и принимает загруженные медиафайлы со следующими характеристиками:
- Максимальный размер файла: 10 МБ.
- Допустимые типы MIME мультимедиа:
image/*
,audio/*
,video/*
Запрос
HTTP-запрос
POST https://www.googleapis.com/upload/mirror/v1/timeline/itemId/attachments
Параметры
Имя параметра | Ценить | Описание |
---|---|---|
Параметры пути | ||
itemId | string | Идентификатор элемента временной шкалы, которому принадлежит вложение. |
Обязательные параметры запроса | ||
uploadType | string | Тип запроса на загрузку по URI /upload . Приемлемые значения:
|
Авторизация
Этот запрос требует авторизации со следующей областью действия ( подробнее об аутентификации и авторизации читайте здесь ).
Объем |
---|
https://www.googleapis.com/auth/glass.timeline |
Тело запроса
Не предоставляйте тело запроса с помощью этого метода.
Ответ
В случае успеха этот метод возвращает ресурс Timeline.attachments в тексте ответа.
Примеры
Примечание. Примеры кода, доступные для этого метода, не представляют все поддерживаемые языки программирования (список поддерживаемых языков см. на странице клиентских библиотек ).
Ява
Использует клиентскую библиотеку Java .
import com.google.api.client.http.InputStreamContent; import com.google.api.services.mirror.Mirror; import com.google.api.services.mirror.model.Attachment; import java.io.IOException; import java.io.InputStream; public class MyClass { // ... /** * Insert a new attachment for the specified timeline item. * * @param service Authorized Mirror service. * @param itemId ID of the timeline item to insert attachment for. * @param contentType Attachment's content type (supported content types are * "image/*", "video/*", "audio/*"). * @param attachment Attachment to insert. * @return Attachment's metadata on success, {@code null} otherwise. */ public static Attachment insertAttachment(Mirror service, String itemId, String contentType, InputStream attachment) { try { InputStreamContent mediaContent = new InputStreamContent(contentType, attachment); return service.timeline().attachments().insert(itemId, mediaContent).execute(); } catch (IOException e) { // An error occurred. e.printStackTrace(); return null; } } // ... }
.СЕТЬ
Использует клиентскую библиотеку .NET .
using System; using Google.Apis.Mirror.v1; using Google.Apis.Mirror.v1.Data; using System.IO; public class MyClass { // ... /// <summary> /// Insert a new attachment for the specified timeline item. /// </summary> /// <param name="service">Authorized Mirror service.</param> /// <param name="itemId">ID of the timeline item to insert attachment for.</param> /// <param name="contentType"> /// Attachment's content type (supported content types are "image/*", "video/*", "audio/*"). /// </param> /// <param name="stream">Attachment to insert.</param> /// <returns>Attachment's metadata on success, null otherwise.</returns> public static Attachment InsertAttachment( MirrorService service, String itemId, String contentType, Stream stream) { try { TimelineResource.AttachmentsResource.InsertMediaUpload request = service.Timeline.Attachments.Insert(itemId, stream, contentType); request.Upload(); return request.ResponseBody; } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); return null; } } // ... }
PHP
Использует клиентскую библиотеку PHP .
/** * 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 insertAttachment($service, $itemId, $contentType, $attachment) { try { $params = array( 'data' => $attachment, 'mimeType' => $contentType, 'uploadType' => 'media'); return $service->timeline_attachments->insert($itemId, $params); } catch (Exception $e) { print 'An error ocurred: ' . $e->getMessage(); return null; } }
Питон
Использует клиентскую библиотеку Python .
from apiclient import errors # ... def insert_attachment(service, item_id, content_type, attachment): """Insert an new attachment for the specified timeline item. Args: service: Authorized Mirror service. item_id: ID of the timeline item to insert attachment for. content_type: Attachment's content type (supported content types are 'image/*', 'video/*' and 'audio/*'). attachment: Attachment to insert as data string. Returns: Attachment's metadata on success, None otherwise. """ try: media_body = MediaIoBaseUpload( io.BytesIO(attachment), mimetype=content_type, resumable=True) return service.timeline().attachments().insert( itemId=item_id, media_body=media_body).execute() except errors.HttpError, error: print 'An error occurred: %s' % error return None
Руби
Использует клиентскую библиотеку Ruby .
## # Insert an new attachment for the specified timeline item. # # @param [Google::APIClient] client # Authorized client instance. # @param [String] item_id # ID of the timeline item to insert attachment for. # @param [String] content_type # Attachment's content type (supported content types are 'image/*', 'video/*' # and 'audio/*'). # @param [String] filename # Attachment's filename. # @return [Google::APIClient::Schema::Mirror::V1::Attachment] # Attachment's metadata on success, nil otherwise. def insert_attachment(client, item_id, content_type, filename) mirror = client.discovered_api('mirror', 'v1') media = Google::APIClient::UploadIO.new(filename, content_type) result = client.execute( :api_method => mirror.timeline.attachments.insert, :media => media, :parameters => { 'itemId' => item_id, 'uploadType' => 'resumable', 'alt' => 'json'}) if result.success? return result.data else puts "An error occurred: #{result.data['error']['message']}" end end
Необработанный HTTP
Не использует клиентскую библиотеку.
POST /upload/mirror/v1/timeline/timeline item id/attachments?uploadType=media HTTP/1.1 Host: www.googleapis.com Authorization: Bearer auth token Content-Type: media content type Content-Length: media content length media bytes