Requires authorization
Retrieves an attachment on a timeline item by item ID and attachment ID. See an example.
Request
HTTP request
GET https://www.googleapis.com/mirror/v1/timeline/itemId/attachments/attachmentId
Parameters
Parameter name | Value | Description |
---|---|---|
Path parameters | ||
attachmentId |
string |
The ID of the attachment. |
itemId |
string |
The ID of the timeline item the attachment belongs to. |
Authorization
This request requires authorization with the following scope (read more about authentication and authorization).
Scope |
---|
https://www.googleapis.com/auth/glass.timeline |
Request body
Do not supply a request body with this method.
Response
If successful, this method returns a Timeline.attachments resource in the response body.
Examples
Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).
Java
Uses the Java client library.
import com.google.api.client.http.GenericUrl; import com.google.api.client.http.HttpResponse; 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 { // ... /** * Print an attachment's metadata. * * @param service Authorized Mirror service. * @param itemId ID of the timeline item the attachment belongs to. * @param attachmentId ID of the attachment to print metadata for. */ public static void printAttachmentMetadata(Mirror service, String itemId, String attachmentId) { try { Attachment attachment = service.timeline().attachments().get(itemId, attachmentId).execute(); System.out.println("Attachment content type: " + attachment.getContentType()); System.out.println("Attachment content URL: " + attachment.getContentUrl()); } catch (IOException e) { System.out.println("An error occured: " + e); } } /** * Download a timeline items's attachment. * * @param service Authorized Mirror service. * @param itemId ID of the timeline item to download the attachment for. * @param attachment Attachment to download content for. * @return The attachment content on success, {@code null} otherwise. */ public static InputStream downloadAttachment(Mirror service, String itemId, Attachment attachment) { try { HttpResponse resp = service.getRequestFactory().buildGetRequest(new GenericUrl(attachment.getContentUrl())) .execute(); return resp.getContent(); } catch (IOException e) { // An error occurred. e.printStackTrace(); return null; } } // ... }
.NET
Uses the .NET client library.
using System; using Google.Apis.Mirror.v1; using Google.Apis.Mirror.v1.Data; using System.Net; using System.IO; public class MyClass { // ... /// <summary> /// Print an attachment's metadata. /// </summary> /// <param name="service">Authorized Mirror service.</param> /// <param name="itemId">ID of the timeline item the attachment belongs to.</param> /// <param name="attachmentId">ID of the attachment to print metadata for.</param> public static void PrintAttachmentMetadata( MirrorService service, String itemId, String attachmentId) { try { Attachment attachment = service.Timeline.Attachments.Get(itemId, attachmentId).Fetch(); Console.WriteLine("Attachment content type: " + attachment.ContentType); Console.WriteLine("Attachment content URL: " + attachment.ContentUrl); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); } } /// <summary> /// Download a timeline items's attachment. /// </summary> /// <param name="service">Authorized Mirror service.</param> /// <param name="attachment">Attachment to download content for.</param> /// <returns>Attachment's content if successful, null otherwise.</returns> public static System.IO.Stream DownloadAttachment( MirrorService service, Attachment attachment) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create( new Uri(attachment.ContentUrl)); service.Authenticator.ApplyAuthenticationToRequest(request); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { return response.GetResponseStream(); } else { Console.WriteLine( "An error occurred: " + response.StatusDescription); return null; } } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); return null; } } // ... }
PHP
Uses the PHP client library.
/** * Print an attachment's metadata. * * @param Google_MirrorService $service Authorized Mirror service. * @param string $itemId ID of the timeline item the attachment belongs to. * @param string $attachmentId ID of the attachment to print metadata for. */ function printAttachmentMetadata($service, $itemId, $attachmentId) { try { $attachment = $service->timeline_attachments->get($itemId, $attachmentId); print "Attachment content type: " . $attachment->getContentType() . "\n"; print "Attachment content URL: " . $attachment->getContentUrl() . "\n"; } catch (Exception $e) { print "An error occurred: " . $e->getMessage(); } } /** * Download an attachment's content. * * @param string $timelineId ID of the timeline item the attachment belongs to. * @param Google_Attachment $attachment Attachment's metadata. * @return string The attachment's content if successful, null otherwise. */ function downloadAttachment($itemId, $attachment) { $request = new Google_HttpRequest( $attachment->getContentUrl(), 'GET', null, null); $httpRequest = Google_Client::$io->authenticatedRequest($request); if ($httpRequest->getResponseHttpCode() == 200) { return $httpRequest->getResponseBody(); } else { // An error occurred. return null; } }
Python
Uses the Python client library.
from apiclient import errors # ... def print_attachment_metadata(service, item_id, attachment_id): """Print an attachment's metadata Args: service: Authorized Mirror service. item_id: ID of the timeline item the attachment belongs to. attachment_id: ID of the attachment to print metadata for. """ try: attachment = service.timeline().attachments().get( itemId=item_id, attachmentId=attachment_id).execute() print 'Attachment content type: %s' % attachment['contentType'] print 'Attachment content URL: %s' % attachment['contentUrl'] except errors.HttpError, error: print 'An error occurred: %s' % error def download_attachment(service, attachment): """Download an attachment's content Args: service: Authorized Mirror service. attachment: Attachment's metadata. Returns: Attachment's content if successful, None otherwise. """ resp, content = service._http.request(attachment['contentUrl']) if resp.status == 200: return content else: print 'An error occurred: %s' % resp return None
Ruby
Uses the Ruby client library.
## # Print an attachment's metadata. # # @param [Google::APIClient] client # Authorized client instance. # @param [String] item_id # ID of the timeline item the attachment belongs to. # @param [String] attachment_id # ID of the attachment to print metadata for. # @return nil def print_attachment_metadata(client, item_id, attachment_id) mirror = client.discovered_api('mirror', 'v1') result = client.execute( :api_method => mirror.timeline.attachments.get, :parameters => { 'itemId' => item_id, 'attachmentId' => attachment_id}) if result.success? attachment = result.data puts "Attachment content type: #{attachment.content_type}" puts "Attachment content url: #{attachment.content_url}" else puts "An error occurred: #{result.data['error']['message']}" end end ## # Download an attachment's content # # @param [Google::APIClient] client # Authorized client instance # @param [Google::APIClient::Schema::Mirror::V1::Attachment] # Attachment instance # @return # Attachment's content if successful, nil otherwise def download_attachment(client, attachment) result = client.execute(:uri => attachment.content_url) if result.success? return result.body else puts "An error occurred: #{result.data['error']['message']}" end end
Raw HTTP
Does not use a client library.
GET /mirror/v1/timeline/timeline item id/attachments/attachment id HTTP/1.1 Host: www.googleapis.com Authorization: Bearer auth token