Ejemplo completo para publicar un mensaje en un dispositivo mediante un tema personalizado a través de una operación de OpenAPI.
Consulta del documento de OpenAPI
Revise API list para localizar la operación Pub, que publica mensajes en un dispositivo mediante un tema personalizado. Consulte su documentación para conocer los datos y permisos obligatorios.
Creación de un usuario de RAM y asignación de permisos
Identidad
Esta operación se puede invocar con una cuenta de Alibaba Cloud, un usuario de Resource Access Management (RAM) o un rol de RAM. Para obtener más información sobre las diferencias entre estas identidades, consulte Identities, credentials, and authorization. Este ejemplo utiliza un usuario de RAM.
Inicie sesión en la consola de Resource Access Management (RAM), cree un usuario de RAM exclusivo para llamadas a la API y guarde el par de AccessKey. Para obtener más información, consulte Create a RAM user.
Autorización
Vaya a la página Lista de usuarios de RAM. En la columna Actions del usuario de RAM correspondiente, haga clic en Add Permissions.
-
En la sección Select Policy, introduzca la palabra clave
IoTen el cuadro de búsqueda y seleccione la directiva AliyunIOTFullAccess.Nota-
Las directivas del sistema para IoT Platform son las siguientes:
AliyunIOTFullAccess: Otorga permisos completos de administración para Internet of Things (IoT) Platform.
AliyunIOTReadOnlyAccess: Otorga permisos de acceso de solo lectura para Internet of Things (IoT) Platform.
Para obtener más información sobre cómo crear una directiva personalizada, consulte Custom policies.
-
Haga clic en OK para completar la autorización.
Credencial
Al crear un usuario de RAM, se genera un par de AccessKey de forma predeterminada.
Como alternativa, vaya a la página de detalles del usuario de RAM. En la pestaña Authentication Management, haga clic en Create AccessKey. Para obtener más información, consulte Create an AccessKey.
Llamada a OpenAPI
El siguiente ejemplo utiliza Python para invocar la operación Pub.
Preparación del entorno de Python
-
Compruebe si Python 3 está instalado en su sistema.
Sistemas Linux y macOS
Abra la terminal y ejecute el comando
python3 --version.Si el sistema devuelve el número de versión de Python, significa que Python 3 ya está instalado. De lo contrario, continúe con el siguiente paso para instalar Python 3.
Sistema Windows
En la ruta de instalación de Python, haga doble clic en python.exe para abrir una ventana del command prompt. También puede usar el atajo de teclado Win+R para abrir el cuadro de diálogo Run, escribir python y hacer clic en OK.
Si el sistema devuelve una respuesta similar a la siguiente e ingresa al entorno interactivo de Python, significa que Python está instalado.
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> -
Descargue e instale Python.
Para descargar Python 3, consulte Python 3.
Linux
-
Descargue el paquete de Python.
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz -
Descomprima el paquete de Python.
tar -zxvf Python-3.9.6.tgz -
Cambie al directorio descomprimido y especifique la ruta de instalación.
cd Python-3.9.6 sudo ./configure --prefix=/usr/bin/python3 -
Compile e instale Python.
make make install -
Configure la variable de entorno para Python 3.
Por ejemplo, en un sistema Ubuntu Linux, puede ejecutar los siguientes comandos.
-
Abra el archivo
.bashrcy agregue lo siguiente al final del archivo.nano ~/.bashrc -
Agregue el siguiente contenido al final del archivo; luego guárdelo y ciérrelo.
export PATH=$PATH:/usr/bin/python3 -
Ejecute el siguiente comando para actualizar la variable de entorno.
source ~/.bashrc -
Ejecute el siguiente comando para consultar la variable de entorno y confirmar que incluye la ruta de instalación de Python 3.
echo $PATH
-
macOS
Este sistema incluye Python 2.7. Descargue e instale la versión más reciente de Python 3.x.
Una vez descargado el paquete de instalación, haga doble clic en él para abrir el asistente de instalación de Python.
Haga clic en Continue y siga las instrucciones para configurar e instalar.
Configure la variable de entorno según la ruta de instalación de Python 3.
Windows
Una vez completada la descarga, haga doble clic en el paquete para abrir el asistente de instalación de Python. Use la configuración predeterminada y seleccione Add Python 3.9 to PATH.
Haga clic en Install Now para iniciar la instalación.
Cuando finalice la instalación, haga clic en Close para cerrar la ventana de instalación.
-
Repita el paso 1 para comprobar la versión de Python 3. Si se muestra el número de versión correcto, la instalación se realizó correctamente.
Configuración de variables de entorno
Para evitar codificar directamente un par de AccessKey en su código, almacene las credenciales en variables de entorno.
-
Sistemas Linux y macOS
Reemplace
<access_key_id>y<access_key_secret>en los siguientes comandos con su AccessKey ID y su AccessKey secret. Luego, ejecute los comandos en la terminal.export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret> -
Sistema Windows
Cree las variables de entorno
ALIBABA_CLOUD_ACCESS_KEY_IDyALIBABA_CLOUD_ACCESS_KEY_SECRET, y establezca sus valores con su AccessKey ID y su AccessKey secret. Después, reinicie su sistema Windows.
Instalación de dependencias
pip3 install alibabacloud_tea_openapi
pip3 install alibabacloud_iot20180120
pip3 install alibabacloud-tea-console
Descarga del código de ejemplo
En el portal de OpenAPI, vaya a la página de depuración de la API Pub.
Introduzca los valores de los parámetros de solicitud IotInstanceId, ProductKey, TopicFullName y MessageContent. Puede dejar vacíos los demás parámetros.
Haga clic en Submit Request.
En la pestaña Call Result, una vez que aparezca el mensaje Call Succeeded, haga clic en la pestaña SDK Sample y luego en la pestaña Python.
Haga clic en Download Complete Project para descargar el paquete de código de ejemplo.
Descomprima el paquete de código de ejemplo en su computadora local y vaya a la carpeta alibabacloud_sample.
Ejecución del código
Ejecute el siguiente comando:
python sample.py
La salida es la siguiente:
{
"headers": {
"date": "Thu, 10 Aug 2023 09:26:52 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "99",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "1296FD43-4BD3-5F80-AB2C-1ADF99B02253",
"x-acs-trace-id": "aee72e4c5e***************77fc9d",
"etag": "9umD************cjYJ8og9"
},
"statusCode": 200,
"body": {
"MessageId": 1689000000000004736,
"RequestId": "1296FD43-4BD3-5F80-AB2C-1ADF99B02253",
"Success": true
}
}