添付ファイルは、タイムライン アイテムなどの他のエンティティと同じ方法で OAuth 2.0 によって保護されます。それらにアクセスするには、有効な OAuth アクセス トークンを提供する必要があります。
デフォルトでは、この URL へのリクエストは添付ファイルのメタデータを返します。バイトが必要な場合はmedia
、GET パラメータを追加して応答形式として指定する必要がありますalt=media
。公式のクライアント ライブラリは、このためのラッパーを提供します。
リファレンス ドキュメントとクイック スタート プロジェクトには、いくつかの言語での例があります。これらのソースからコピーしたいくつかの注目すべきものを次に示します。
生の HTTP:
GET /mirror/v1/timeline/{timeline item id}/attachments/{attachment id}?alt=media HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer {auth token}
ジャワ:
/**
* 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;
}
}
PHP:
/**
* 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;
}
}
パイソン:
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