すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:HTTPS による接続と通信

最終更新日:Jun 03, 2026

IoT Platform は、HTTPS によるデバイス接続をサポートします。デバイスは認証を行ってトークンを取得し、そのトークンを使用してデータをレポートします。

使用方法と制限

  • HTTPS 通信は、中国 (上海) のリージョンでのみサポートされています。
  • 中国 (上海) リージョンのみ、短時間の HTTPS 接続をサポートします。デバイスのオンライン/オフラインステータスは、IoT Platform コンソールで確認できます。デバイスステータスの変更は、AMQP サーバー側サブスクリプションを介してサブスクライブできます。
  • HTTPS による通信は、直接接続デバイスのみをサポートしています。ゲートウェイデバイスとサブデバイスはサポートしていません。
  • シンプルなデータレポート用に設計されています。データアップリンクのペイロードは 128 KB に制限されます。
  • トピックはMQTT トピック形式に従っており、MQTT 接続から再利用できます。データをレポートするには、${endpoint}/topic/${topic} に POST リクエストを送信します。クエリ文字列パラメーター (?query_String=xxx) はサポートしていません。
  • HTTPS 接続は、POST リクエストメソッドのみをサポートします。
  • 認証トークンの有効期間は 7 日間です。アプリケーションでトークンの有効期限切れと再認証を処理する必要があります。

接続フロー

接続フローは 2 つのステップで構成されます。デバイスを認証してトークンを取得し、次にそのトークンを使用してデータをレポートします。

  1. デバイスを認証してトークンを取得します。

    デバイス認証リクエスト:

    POST /auth HTTP/1.1
    Host: ${YourEndpoint}
    Content-Type: application/json
    Content-Length: 214
    body: {"version":"default","clientId":"mylight1000002","signmethod":"hmacsha1","sign":"4870141D4067227128CBB4377906C3731CAC221C","productKey":"ZG1EvTE****","deviceName":"NlwaSPXsCpTQuh8FxBGH","timestamp":"1501668289957"}
    表 1. パラメーターの説明
    パラメーター 説明
    Method リクエストメソッド。POST のみがサポートされています。
    URL URL。HTTPS のみ。値: /auth。
    Host HTTP エンドポイント。エンドポイントは インスタンスエンドポイントの表示と設定 から取得します。
    Content-Type データエンコード形式。application/json のみがサポートされています。他の形式を指定すると、パラメーターエラーが返されます。
    Content-Length HTTP メッセージボディの長さ。
    重要
    • HTTP/1.1 以降では、Content-Length がデフォルトで含まれます。HTTP/1.0 では含まれません。HTTP/1.0 を使用する場合は、Content-Length フィールドを含める必要があります。
    • Content-Length の値は、ボディの長さと正確に一致する必要があります。不一致の場合、ボディの解析に失敗し、認証が失敗します。
    body JSON 形式のデバイス認証情報。パラメーターは「body パラメーター」の表に記載されています。
    表 2. body パラメーター
    フィールド名 必須 説明
    productKey はい [Device Details]デバイスの ProductKey。対応するインスタンスの ページで確認できます。
    deviceName はい デバイス名。[Device Details] IoT Platform コンソールの ページで確認できます。
    clientId はい クライアント ID。最大 64 文字。clientId には MAC アドレスまたはシリアル番号 (SN) を使用します。
    timestamp いいえ 1970 年 1 月 1 日 (UTC) からのミリ秒単位のタイムスタンプ。このタイムスタンプから 15 分後にリクエストは期限切れになります。
    sign はい 署名。

    署名形式: hmacmd5(DeviceSecret,content)

    contentは、versionsign、およびsignmethodを除くすべてのパラメーターをアルファベット順にソートし、区切り文字なしで連結したものです。

    signmethodhmacmd5 の場合の署名の例:

    clientId = 127.0.0.1deviceName = http_testproductKey = a1FHTWxQ****timestamp = 1567003778853signmethod = hmacmd5deviceSecret = 89VTJylyMRFuy2T3sywQGbm5Hmk1**** の場合、署名は次のようになります:

    hmacmd5("89VTJylyMRFuy2T3sywQGbm5Hmk1****","clientId127.0.0.1deviceNamehttp_testproductKeya1FHTWxQ****timestamp1567003778853").toHexString();

    toHexString() 関数は、バイナリデータを大文字小文字を区別しない 16 進数文字列に変換します。たとえば、10 進数配列 [60 68 -67 -7 -17 99 30 69 117 -54 -58 -58 103 -23 113 71] は 3C44BDF9EF631E4575CAC6C667E97147 に変換されます。

    signmethod いいえ 署名アルゴリズム。有効な値: hmacmd5、hmacsha1。

    デフォルト: hmacmd5。

    version いいえ バージョン番号。デフォルト: default。

    認証成功時のレスポンス:

    body:
    {
      "code": 0,
      "message": "success",
      "info": {
        "token":  "6944e5bfb92e4d4ea3918d1eda39****"
      }
    }
    説明
    • 返されたトークンをローカルにキャッシュします。
    • 各データレポートリクエストにトークンを含めます。トークンの有効期限が切れた場合は、再認証を行って新しいトークンを取得します。
    表 3. エラーコード
    code message 備考
    10000 common error 不明なエラー。
    10001 param error リクエストパラメーターが無効です。
    20000 auth check error デバイス認証に失敗しました。
    20004 update session error セッションの更新に失敗しました。
    40000 request too many リクエスト数が制限を超えています。スロットリングがトリガーされました。
  2. データをレポートします。

    デバイスは、パブリッシュ権限を持つトピックにデータを送信します。カスタムトピックもサポートしています。

    たとえば、トピックが /${YourProductKey}/${YourDeviceName}/pub、デバイス名が device123、製品の ProductKey が a1GFjLP**** の場合、https://iot-as-http.cn-shanghai.aliyuncs.com/topic/a1GFjLP****/device123/pub URL を呼び出してデータをレポートできます。

    データレポートリクエスト:

    POST /topic/${topic} HTTP/1.1
    Host: ${YourEndpoint}
    password:${token}
    Content-Type: application/octet-stream
    Content-Length: 53
    body: ${your_data}
    表 4. データレポートパラメーター
    パラメーター 説明
    Method リクエストメソッド。POST のみがサポートされています。
    URL /topic/${topic}${topic} を宛先トピックに置き換えます。HTTPS のみ。
    Host エンドポイントアドレス。
    password ヘッダーパラメーター。auth API で返されたトークンに設定します。
    Content-Type データエンコード形式。application/octet-stream のみがサポートされています。他の形式を指定すると、パラメーターエラーが返されます。
    Content-Length HTTP メッセージエンティティの長さ。
    body ${topic} に送信するデータ。

    成功時のレスポンス:

    body:
    {
      "code": 0,
      "message": "success",
      "info": {
        "messageId": 892687****47040
      }
    }
    表 5. エラーコード
    code message 備考
    10000 common error 不明なエラー。
    10001 param error リクエストパラメーターが無効です。
    20001 token is expired トークンの有効期限が切れています。auth API を再度呼び出して、新しいトークンを取得してください。
    20002 token is null リクエストヘッダーにトークンが見つかりません。
    20003 check token error トークンから ID 情報を取得できませんでした。auth API を再度呼び出して、新しいトークンを取得してください。
    30001 publish message error データのレポートに失敗しました。
    40000 request too many リクエスト数が制限を超えています。スロットリングがトリガーされました。

HTTP クライアントを IoT Platform に接続するには、HTTP クライアントの接続の手順に従います。