3

動画をアプリに共有してみました。通知を受け取りましたが、ビデオをロードするための contentUrl がありません。通知の添付ファイル フィールドは次のとおりです。

attachments: [{contentType: 'video/mp4', 'id': 'ps:5870152408634447570'}]

isProcessingContent フィールドも存在しません。しばらく待ってみましたが (ビデオが処理されている可能性があります)、違いはありませんでした。

https://developers.google.com/glass/v1/reference/timeline/attachments

ビデオファイルにアクセスする方法はありますか?

4

1 に答える 1

3

添付ファイルはメタデータでcontentUrl提供されません。添付ファイルに関する詳細情報を取得するTimelineItemには、承認されたリクエストをエンドポイントに送信する必要があります。mirror.timeline.attachments.get

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

添付ファイルのメタデータを取得したら、isProcessingContentプロパティを確認しますFalse。. contentUrl残念ながら、プロパティの値が変更されたときのプッシュ通知はなく、サービスはクォータとリソースを節約するために指数バックオフを使用してポーリングする必要があります。

添付ファイルのメタデータcontentUrlが利用可能な場合、次のように添付ファイルのコンテンツを取得できます。

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
于 2013-04-24T15:41:14.187 に答える