Google Cloud IoT Coreに登録されている端末の一覧をC#で取得する
概要
Google Cloud IoT Coreに登録されている端末の一覧をC#で取得する方法をまとめます。
Cloud IoT Coreに端末を登録する
Quickstart を参考にClout IoT Coreを作成して、端末を作成します。この記事の範囲では以下を行えばよいです。
- Before you begin
- Create a device registry
- Add a device to the registry
- Clean up
今回はTestDevice1
とTestDevice2
という2つの端末を作成しました。
また、それぞれの端末のメタ情報にName
を追加しました。
認証
以下のページを参考にサービスアカウントというものを作成します。
作成するアカウントは以下を選びました。
- サービスアカウント:Compute Engineのデフォルトのサービスアカウント
- キーのタイプ:JSON
※もしかしたらCompute Engine
のVMを作成していないとデフォルトのサービスアカウント
は出てこないかもしれません。
「作成」ボタンを押すとJSONファイルがダウンロードされます。
サンプルプログラム
コード
Cloud IoT Coreに登録されている端末の一覧と、各端末の情報を表示するサンプルプログラムです。
Google Cloud IoT Coreに登録されている端末の一覧を取得するプログラム
プログラム中のPROJECT_ID
, REGION
, REGISTRY_ID
は各自置き換えます。PROJECT_ID
はClout IoT Coreを作成したプロジェクトのID、REGION
はus-central1
など、REGISTRY_ID
はCloud IoT CoreのレジストリIDです。
端末の情報として以下の2つを表示しています。
ID
- メタ情報の
Name
cloudIotService.Projects.Locations.Registries.Devices.List(parent).ExecuteAsync()
で取得できる端末は、IDなどの限られた情報のみ設定されているようで、メタ情報は取得できません。
そこで、さらに各端末毎にcloudIotService.Projects.Locations.Registries.Devices.Get(name).ExecuteAsync()
を呼び出して詳細な端末情報を取得します。このメソッドで取得した端末情報にはメタ情報なども含まれています。
必要な設定
このプログラムは環境変数GOOGLE_APPLICATION_CREDENTIALS
が必要です。値はサービスアカウントの作成でダウンロードしたJSONファイルのパスです。
この環境変数をGoogleCredential.GetApplicationDefault()
で参照しているようです。
また、このプログラムでは Google.Apis.CloutIot.v1 を使っているので、プロジェクトに追加します。
参照
- Authenticating Applications
- Clout IoT CoreのAPIへ認証する方法とサンプルプログラム
- .NET Cloud IoT Core Sample
- Clout IoT Coreの各APIへアクセスするサンプルコード
- Google APIs Explorer