Cần phải uỷ quyền
Thêm tệp đính kèm mới vào mục trong dòng thời gian. Xem ví dụ.
Phương thức này hỗ trợ URI /upload và chấp nhận nội dung nghe nhìn đã tải lên có các đặc điểm sau:
- Kích thước tệp tối đa: 10 MB
- Các loại MIME nội dung đa phương tiện được chấp nhận:
image/*
,audio/*
,video/*
Yêu cầu
Yêu cầu HTTP
POST https://www.googleapis.com/upload/mirror/v1/timeline/itemId/attachments
Tham số
Tên thông số | Giá trị | Mô tả |
---|---|---|
Tham số đường dẫn | ||
itemId |
string |
Mã của mục dòng thời gian có chứa tệp đính kèm. |
Tham số truy vấn bắt buộc | ||
uploadType |
string |
Loại yêu cầu tải lên đối với URI /upload.
Các giá trị được chấp nhận là:
|
Ủy quyền
Yêu cầu này cần có sự cho phép có phạm vi sau (đọc thêm về quy trình xác thực và uỷ quyền).
Phạm vi |
---|
https://www.googleapis.com/auth/glass.timeline |
Nội dung yêu cầu
Đừng cung cấp nội dung yêu cầu bằng phương thức này.
Phản hồi
Nếu thành công, phương thức này sẽ trả về một tài nguyên "{Dòng thời gian.tệp trong nội dung phản hồi.
Ví dụ
Lưu ý: Các đoạn mã mẫu của phương thức này không phải là ví dụ cho mọi ngôn ngữ lập trình được hỗ trợ (xem trang thông tin về các thư viện dùng cho ứng dụng để biết danh sách các ngôn ngữ được hỗ trợ).
Java
Dùng thư viện ứng dụng 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
Dùng thư viện ứng dụng.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
Dùng thư viện ứng dụng 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
Dùng thư viện ứng dụng 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
Dùng thư viện ứng dụng 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 thô
Không sử dụng thư viện ứng dụng.
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