メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Python Quickstart for Twilio Sync for IoT

This guide will demonstrate how to use the Twilio Device Manager and the Paho Python MQTT client for python to experiment with Sync's IoT support using only your laptop and a Python interpreter. We're going to:

  1. Create a device record in the Twilio Console,
  2. provision credentials for the device,
  3. MQTTを使用してそのデバイスに接続する
  4. Syncオブジェクトを通じて共同作業を行う

To get off the ground, we're going to do all this using our localhost machine, to show the infrastructure in motion. But the very same code could just as well be deployed to a physical hardware device. And as always with Twilio, everything comes with a REST API so you can automate these steps at well. After working through this guide, we encourage you to check out the Device Management API documentation and dig further in to the possibilities.

Sync for IoT is currently in Developer Preview, which means access is by invite only. If you'd like to try what you see in these docs, sign up for the developer preview and the team at Twilio will get you onboarded as soon as possible.

デバイスフリートとデプロイメントを準備する

Our first step is to provision a Device Fleet. Fleets are isolation containers for your devices, their credentials, and deployments. Within a Fleet, each of those may be reassigned or reassociated with each other, but across fleets your configuration and credentials are safely isolated. We’ll create our fleet in the Console Device Manager, clicking the plus sign and Create. No need to fill in any fields just yet.

Twilio Consoleでのフリートの作成

        
        
        
        

        現時点では、フリート単体ではデバイスに対して何ら振る舞いは行いません。デバイスにどのリソース(今回の場合はSyncインスタンス)が紐づけられるかについては、デプロイメントによって構成されます。 ソリューションには最低1つのデプロイメントが含まれます。

        今回の場合フリートを作成したばかりなので、新規フリートには新しいSyncインスタンスですでに構成済みの既定のデプロイメントがあることにすぐに気づくでしょう。 このSyncインスタンスにはテストデバイスとやり取りするデータが含まれています。

        既定のデプロイメントは、各新規デバイスフリートに対して自動で準備されます。
        各デプロイメントは既定のServiceインスタンスで構成されます。

        アプリケーションの規模が拡大してきたら、複数のSyncインスタンスと複数のデプロイメントを使用して、ユーザーとそのアプリケーションの状態の分離を検討できます。 今回のところは、これらの便利な既定値を活用して先に進みましょう。

        デバイスとそのクレデンシャルを作成する

        デバイスマネージャーREST APIでは、Deviceはデプロイされたハードウェア機器からの接続を表します。 接続されテイルハードウェアはクレデンシャルで自身を識別し、どのデプロイメントに属するか決定します。 最適なセキュリティーのため、証明書とTLSで保護されたMQTTデバイスからの接続を推奨していますので、ここでもその方法をご紹介します。

        Creating a device is predictably simple. From your default deployment, click Devices in the left menu, select Create a Device (or the plus sign, if you already have some), and fill in the Deployment SID from the previous step. You can leave all the other fields blank for now.

        Twilio Consoleでデバイスを作成する

        これによってデバイスの簡単な概要が表示されます。 ここから、(左側のコンテキストメニューの)Certificate(証明書)の一覧を確認し、新規証明書を作成します。 将来的には、お手持ちの署名済み証明書を使用することができますが、ここでは自己署名証明書を使用することにしましょう。 作成後は、証明書と鍵をダウンロードします。 また、パスワードを書き留めておいてください。

        デバイス証明書を作成する
        デバイス証明書の鍵をダウンロードする

        You will provide these two data — a certificate (.pem) and the matching encrypted private key (.key) — to the Paho MQTT client. Paho needs the latter in unencrypted form, so using the passphrase from above.

        $ openssl rsa -in CY499a5cbd774f4970a9ab51e2e8c4fb57.key \
        -out CY499a5cbd774f4970a9ab51e2e8c4fb57.key.decrypted

        Syncオブジェクトを作成する

        もっともシンプルなSyncオブジェクトはDocumentであり、現在はMQTTデバイスが購読できるようになる前にそれが存在していることが必要です。 Postman、Curl、またはTwilioヘルパーライブラリーのいずれかを使用してこれをやってみましょう。

              
              
              
              
              上述の既定のデプロイメントから、Sync Service SID (ISxxx) を使用します。

              Syncオブジェクトを作成する

              上述の既定のデプロイメントから、Sync Service SID (ISxxx) を使用します。

              MQTTからSync Documentを購読する

              Pahoは一般的に使用されテイルPython MQTTクライアントです。 最後から2番目の手順として、エンドツーエンドのフローをテストできるようにするため、クライアントを準備済みの証明書で初期化します。

              $ pip install paho-mqtt

              下記のPythonスクリプトをファイルにコピーして、実際の証明書ファイルの場所に合うよう編集します。

                    
                    
                    
                    
                    スクリプトをターミナルから実行するか、デバイスにデプロイします。

                    MQTTクライアントでDocumentを購読する

                    スクリプトをターミナルから実行するか、デバイスにデプロイします。

                    このスクリプトを実行すると、MyDocの現在の状態が接続上にプリントされます。 これはSyncオブジェクトへのMQTTクライアントの購読におけるqos=1の影響によるものです。 購読が有効になりました。 同じドキュメントに再度手を加えると、別のメッセージのプリントアウトが確認できます。

                          
                          
                          
                          
                          新しいデータが実行中のクライアントでMQTTメッセージとして表示されます。

                          Documentを更新する

                          新しいデータが実行中のクライアントでMQTTメッセージとして表示されます。

                          次のステップ

                          ここから、MQTTへの公開、様々な異なるオブジェクトへの購読、クライアントを再起動してSyncが状態復帰を行う方法を確認する、そしてSyncそのもののブラウザー内、およびモバイルのSDKを見てみましょう。

                          Rate this page:

                          ヘルプが必要ですか?

                          We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.