IoT Platformの POP API呼び出しデモの紹介

イントロ

技術課の牛嶋です。同僚の技術者が、IoT PlatformのPoP API呼び出しをNode.jsで実装したデモを作成したので、共有したいと思います。

1. Alibaba Cloud POP API SDKを追加する

下記のようにNodeJS中でSDKをインストール。

@alicloud/pop-core https://www.npmjs.com/package/@alicloud/pop-core

package.jsonの中でPOP APIのdependenciesを追加する。

{
  "name": "aliyun-iot-pop-api",
  "version": "0.0.1",
  "description": "aliyun-iot-pop-api",
  "private": true,
  "dependencies": {
    "@alicloud/pop-core": "1.5.2",
    "co": "4.6.0"
  },
  "repository": {
    "url": "https://yuque.com/XXX/iot-tech"
  },
  "author": "XXX",
  "license": "MIT"
}

2. APIの呼び出し

QueryProductList を例としてアカウントの製品を照会するには、以下の操作を呼び出します。

https://www.alibabacloud.com/help/doc-detail/69271.htm

Request parameters:

Parameter Type Required Description
Action String Yes 実行する操作。値をQueryProductListに設定します。
CurrentPage Integer Yes 返される結果のページが表示されます。
PageSize Integer Yes 応答のページごとの製品の数。最大制限は200です。
AliyunCommodityCode String No 照会する製品のエディション。

3. デモコード

/**
 * package.json 追加:"@alicloud/pop-core": "1.5.2"
 */
const co = require('co');
const RPCClient = require('@alicloud/pop-core').RPCClient;

const options = {
    accessKey: "自分のaccessKey",
    accessKeySecret: "自分のaccessKeySecret",
};
//1.client作成
const client = new RPCClient({
    accessKeyId: options.accessKey,
    secretAccessKey: options.accessKeySecret,
    endpoint: options.endpoint || 'https://iot.cn-shanghai.aliyuncs.com',
    apiVersion: options.apiVersion || '2018-01-20'
});


co(function*() {
    // 2.iot API作成
    // ここはPOP APIのAction
    const action ='QueryProductList';
    // ここはPOP APIのparams
    const params = {
        CurrentPage: 1,
        PageSize: 10
    };
    //2.リクエスト送信
    const response = yield client.request(action, params);

    console.log(JSON.stringify(response));
});

4. レスポンスのJSON

{
    "Data":{
        "PageCount":1,
        "PageSize":10,
        "CurrentPage":1,
        "List":{
            "ProductInfo":[

                {
                    "Description":"バイナリ",
                    "DataFormat":0,
                    "ProductKey":"a1pWti1bx1v",
                    "NodeType":0,
                    "ProductName":"バイナリ解析",
                    "DeviceCount":1,
                    "GmtCreate":1526629467000
                },
                {
                    "DataFormat":1,
                    "ProductKey":"a1uqtK9VHcO",
                    "NodeType":0,
                    "ProductName":"温度計",
                    "DeviceCount":2,
                    "GmtCreate":1523935911000
                }
            ]
        },
        "Total":2
    },
    "RequestId":"EAB7B35E-A9BE-4988-AE2A-1DE1318DBCAF",
    "Success":true
}

5. Further Reading

IoT PlatformPOP API一覧について、中国語のドキュメントですが、下記を参照してください。
https://help.aliyun.com/document_detail/69893.html