[翻訳] Nearby Messages API (Overview)

Nearby Messages API の [Overview](https://developers.google.com/nearby/messages/overview) を翻訳してみました。
お気づきの点があればコメント頂ければと思います。

以下、関連する投稿へのリンクです。
■ Google Play services Nearby　[公式](https://developers.google.com/nearby/)　[翻訳](http://qiita.com/tnagao3000/items/5fb840eaa65747ac4347) 
■ **Nearby Messages API (Overview)**　[公式](https://developers.google.com/nearby/messages/overview)　[翻訳](http://qiita.com/tnagao3000/items/623b6a855b678dcaa747)
■ Nearby Messages API for Android (Get Started)　[公式](https://developers.google.com/nearby/messages/android/get-started)　[翻訳](http://qiita.com/tnagao3000/items/b166fb06cf91d365f20c)
■ Nearby Messages API for Android (Publish and Subscribe)　[公式](https://developers.google.com/nearby/messages/android/pub-sub)　[翻訳](http://qiita.com/tnagao3000/items/a310ae2d2ff45414a678)


## Overview 
>The Nearby Messages API is a publish-subscribe API that lets you pass small binary payloads between internet-connected Android and iOS devices. The devices don't have to be on the same network, but they do have to be connected to the Internet.
>
Nearby uses a combination of Bluetooth, Bluetooth Low Energy, Wi-Fi and near-ultrasonic audio to communicate a unique-in-time pairing code between devices. The server facilitates message exchange between devices that detect the same pairing code. When a device detects a pairing code from a nearby device, it sends the pairing code to the Nearby Messages server for validation, and to check whether there are any messages to deliver for the application’s current set of subscriptions.
>
Nearby Messages is unauthenticated and does not require a Google Account.
>
The exact mechanism for data exchange may vary from release to release. The following sequence shows the events leading to message exchange:
>
1. A publishing app makes a request to associate a binary payload (the message) with a unique-in-time pairing code (token). The server makes a temporary association between the message payload and the token.
>
1. The publishing device uses a combination of Bluetooth, Bluetooth Low Energy, Wi-Fi and an ultrasonic modem to make the token detectable by nearby devices. The publishing device also uses these technologies to scan for tokens from other devices.
>
1. A subscribing app associates its subscription with a token and uses a mix of the above technologies to send its token to the publisher, and to detect the publisher's token.
>
1. When either side detects the other's token, it reports it to the server.
>
1. The server facilitates message exchange between two devices when both are associated with a common token, and the API keys used by the calling apps are associated with the same project in the [Google Developers Console](https://console.developers.google.com/).


Nearby Messages APIはインターネットに接続したAndroidやiOSデバイス間で小さなバイナリのペイロードを伝播させるパブリッシュ-サブスクライブ APIです。　デバイスは同一ネットワーク上に存在する必要はありませんが、インターネットに接続している必要があります。

Nearbyはデバイス間で一意なペアリングコードを伝達するためBluetooth、BLE、wifi、超音波の組合せを使用します。　サーバーは同一のペアリングコードを検出したデバイス間のメッセージ交換を助けます。　デバイスは近くのデバイスからのペアリングコードを検出した時、検証のためNearby Messagesサーバーにペアリングコードを送信します。　そしてアプリケーションの現在のサブスクリプション セットへ配信されるメッセージがあるかどうかチェックします。

Nearby Messagesは認証されず、Googleアカウントを必要としません。

データ交換のための厳密な仕組みはリリースにより変わるかもしれません。　次の手順は、メッセージ交換に至るイベントを示しています。

1. パブリッシュするアプリはバイナリのペイロード（メッセージ）とペアリングコード（トークン）との関連付けを要求します。　サーバーは、メッセージペイロードとトークン間の一時的な関連付けを行います。

1. パブリッシュするデバイスは近くのデバイスがトークンを検出できるようにするためBluetooth、BLE、wifi、超音波の組合せを使用します。　また、パブリッシュするデバイスはそれらを他のデバイスからのトークンをスキャンするためにも使います。

1. サブスクライブするアプリはサブスクリプションとトークンを関連付けます。 そしてそのトークンをパブリッシャーに送信するためと、パブリッシャーのトークンを検出するために上記の技術を使用します。

1. いずれかの側が他方のトークンを検出すると、それはサーバーに通知されます。

1. サーバーは、両デバイスが共通のトークンで関連付けられており、呼出元アプリが使用しているAPI keyが[Google Developers Console](https://console.developers.google.com/)で同じプロジェクトに関連付けられているとき、２つのデバイス間のメッセージ交換を助けます。