Mirror API は、Glass 用サービスの構築に使用できる一連の構成要素を提供します。Glass サービスは、開発した他のソフトウェアとは異なる可能性が高いため、Mirror API の機能をどのように組み合わせればよいかが明確でない場合があります。
多くのサービスは、いくつかの API 使用のカテゴリに分類されます。ここでは、Mirror API の機能を組み合わせて Glass サービスを作成する方法について説明します。
猫の豆知識
Glass タイムラインにコンテンツを配信することは、Google Mirror API のシンプルかつ強力な使用方法です。Cat Facts のサンプル Glassware は、猫に関する事実をユーザーに提供します。フローは次のようになります。
- ユーザーがウェブ アプリケーションにアクセスし、OAuth 2.0 で認証を行って登録します。
- サービスごとに、1 時間ごとにユーザーの Glass に新しい猫の事実が届きます。
猫の事実は、タイムライン挿入メソッドを使用して実装します。
- ユーザーが OAuth 2.0 で認証することによって登録する
- Cat Facts には、ユーザーとその認証情報のインデックスが保存されています。
- 猫のファクトは 1 時間ごとに新しい猫の事実を公開しています。これを行うには、保存されているすべてのユーザーに対して反復処理を行い、タイムライン アイテムをタイムラインに挿入します。
そこに猫を追加
人間の技術の進歩の各ステップによって、猫の写真の配布方法が改善されています。Project Glass も例外ではありません。
どの写真も猫を映し出すので、ユーザーは猫の写真と Glass で撮影した写真を合成することができます。
- ユーザーがウェブ アプリケーションにアクセスし、OAuth 2.0 で認証して猫を追加します。
- このサービスでは、ユーザーの Glass に「猫をそれに追加」という新しい連絡先を作成します。
- ユーザーは写真を撮影すると、「猫を追加」で写真を共有します。
- 共有写真に猫のランダムな画像が合成されます。
- 最後に、ユーザーの猫用の補正された写真をユーザーの Glass に表示します。
アーキテクチャ上、このサービスは次の API フローに従います。
- ユーザーが OAuth 2.0 を使用して認証を行います。サービスで認証情報が保存されます。
- OAuth 2.0 ダンスが完了した直後に、サービスから「Add a Cat to That」という連絡先が挿入されます。
- 次に、
timeline
コレクションのサブスクリプションを挿入して、サービスがこのユーザーのタイムラインの更新にサブスクライブします。これで、猫を追加できました。 - 時間が経つと、ユーザーは写真を撮影します。
- ユーザーが「猫を追加」で写真を共有しました。これにより、この写真に関連付けられているタイムライン カードがサービスにアクセスできるようになります。
- ご利用のサービスはタイムライン更新に登録されているため、通知がサービスに送信されます。この通知は、共有された写真を含むタイムライン アイテムにリンクしています。
- サービスが通知を確認し、含まれる
id
を使用して、写真を含むタイムライン カードを取得します。 - 次に、タイムライン アイテムを確認し、添付ファイル ID を使用して写真のバイトを取得します。
- 猫の写真が無作為に選択され、共有写真に合成されます。
- 最後に、新しいタイムライン カードを作成し、猫の顔が写っている写真を添えてユーザーのタイムライン カードに挿入します。
付近のペットショップ
「猫」や「猫の写真」という事実より 1 つだけ優れているのが、実物の物理的な猫です。Mirror API では、最寄りのペットショップの場所を常に把握できるので、管理が簡単になります。
使用フローは次のとおりです。
- ユーザーがウェブ アプリケーションにアクセスし、OAuth 2.0 で認証を行って登録します。
- サービスがユーザーの所在地を決定します。
- その地域付近のペットショップが検索されます。
- 近くにある時計のリストには、時計の左側にカードが挿入されます。
- Glass は、ユーザーの現在地をサービスに通知します。
- 通知があるたびに、ペットショップが繰り返し検索を行い、固定されたカードを更新して、新しく設定されたペットショップのセットを反映します。
このサービスの実装は、次の API フローに従って行います。
- ユーザーが OAuth 2.0 を使用して認証を行います。アプリケーションは、通常の
glass.timeline
スコープに加えて、glass.location
スコープ アクセスもリクエストします。 - OAuth 2.0 ダンスが完了した直後に、ユーザーの位置情報の更新が登録されます。
- 次に、サービスが位置情報エンドポイントからユーザーの最新の位置情報を取得します。
- サービスが、ユーザーの近くにあるペットショップを検索します。
- ペットショップの検索結果の一覧を表示する
timeline
カードが作成されます。時計画面の左側にこのカードを保持するため、サービスはこのカードを固定します。 - ユーザーが移動すると、最新の位置情報が更新されます。
- このサービスは位置情報の更新データに登録されているため、通知が送信されます。この通知は、
location
コレクションのlatest
アイテムにリンクしています。 - 通知に基づいて、サービスは
location
コレクションからユーザーのlatest
location
を取得します。 - 次に、このサービスはユーザーの近くにあるペットショップを検索します。
- 最後に、
patch
メソッドを使用して、ステップ 5 で挿入したタイムライン アイテムの本文を更新します。