8.6.7 Lab - Construct A Python Script To Manage Webex Teams
8.6.7 Lab - Construct A Python Script To Manage Webex Teams
Objetivos
Parte 1: Ejecutar la máquina virtual de DEVASC.
Parte 2: Obtenga su token de acceso de Webex.
Parte 3: Probar su token de acceso.
Parte 4: Gestionar personas en equipos de Webex.
Parte 5: Administrar salas en equipos de Webex.
Parte 6: Gestionar membresías en equipos de Webex.
Parte 7: Administrar mensajes en equipos de Webex.
Aspectos básicos/Situación
En este laboratorio, usará las API de Webex para autenticar, administrar personas, administrar salas,
administrar membresías a salas y enviar un mensaje.
Recursos necesarios
Una computadora con el sistema operativo de su elección con la aplicación de Webex instalada.
Virtual Box o VMWare.
Máquina virtual de DEVASC.
Instrucciones
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 1 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
Paso 2: Utilizar una secuencia de comandos de Python para probar su token de acceso.
a. Abra Código VS. A continuación, haga clic en Archivo > Abrir carpeta... y navegue al directorio devnet-
src/webex-teams. Haga clic en Aceptar.
b. En el panel EXPLORADOR, ahora debería ver todos los archivos.py marcadores de posición que
utilizará en este laboratorio. Haga clic en el archivo authentciation.py.
c. Coloque el código siguiente en el archivo. Asegúrese de reemplazar su_token_aquí con su token de
acceso personal que copió en el paso anterior.
Solicitudes de importación.
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 2 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
Importar JSON.
access_token = 'su_token_here'
url = 'https://webexapis.com/v1/people/me'
headers = (
'Authorization': 'Bearer {}'.format(access_token)
}
res = requests.get(url, headers=headers)
print(json.dumps(res.json(), indent=4))
d. Guarde y ejecute el archivo. Debería obtener el mismo resultado que vio en la documentación de
OpenAPI.
Nota: Los valores de algunas de las claves se han truncado en la salida siguiente.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 authentication.py
{
"id": "Y2lz... UYM2u",
"emails": [
"[email protected]"
],
"PhoneNumbers": [],
"displayName": "Your-First-Name Your-Last-Name",
"nickName": "Your-Nick-Name",
"firstName": " Your-First-Name",
"lastName": "Your-Last-Name",
"avatar": "https://9643-417f-9974...6baa4~1600 ",
"OrgID": "Y2lzy2... UxMgy",
"created": "2012-06-15T20:23:12.529Z",
"lastActivity": "2020-06-02T20:16:52.111Z",
"status": "active",
"type": "person"
}
devasc @labvm: ~/labs/devnet-src/webex-teams$
Paso 1: Buscar la documentación de la API para ver los detalles de un usuario registrado de
Webex.
a. Vuelva al sitio web developer.webex.com. En la parte Referencia de API > Personas, haga clic en el
Método de lista de personas.
b. En Parámetros de consulta, busque el parámetro de correo electrónico . Este es el parámetro que
utilizará para encontrar un usuario específico en su organización. Alternativamente, puede usar el
parámetro DisplayName, si conoce el nombre exacto. Puede utilizar la función Try it.
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 3 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
Paso 2: Utilizar un script de Python para enumerar los detalles de un usuario registrado de
Webex.
a. En Código VS, haga clic en el archivo list-people.py.
b. Coloque el código siguiente en el archivo. Asegúrese de reemplazar su_token_aquí con su token de
acceso personal y el usuario @example.com por un usuario real registrado en Webex de su
organización
Solicitudes de importación.
Importar JSON.
access_token = 'su_token_here'
url = 'https://webexapis.com/v1/people'
headers = (
'Authorization': 'Bearer {}'.format(access_token),
'Content-Type': 'application/json'
}
params = {
'email': '[email protected]'
}
res = requests.get(url, headers=headers, params=params)
print(json.dumps(res.json(), indent=4))
c. Guarde y ejecute el script. Debe de obtener un resultado similar al siguiente. Si recibe un mensaje como,
{'message': 'Dirección de correo electrónico no válida. '..., significa que no reemplazó el parámetro
de correo electrónico vacío por una dirección de correo electrónico legítima para un usuario registrado de
Webex. El valor de la clave id se utilizará en la próxima llamada a la API.
Nota: Los valores de algunas de las claves se han truncado en la salida siguiente.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 list-people.py
{
"NotFoundids": null,
"items": [
{
"id": "y2l... 2I", # Usará este valor en el siguiente paso
"emails": [
"[email protected]"
],
"PhoneNumbers": [
{
"type": "mobile",
"value": "+1234567690"
}
],
"DisplayName": "DisplayName",
"nickName": "nickName",
"FirstName": "FirstName",
"lastName": "lastName",
"avatar": "https://9643-417f-9974...6baa4~1600 ",
"OrgID": "Y2lzy... uxMgy",
"created": "2012-06-15T20:39:19.726Z",
"LastActivity": "2020-06-04T 13:57:01 .688Z",
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 4 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
"status": "active",
"type": "person"
}
]
}
devasc @labvm: ~/labs/devnet-src/webex-teams$
b. Guarde el archivo y ejecútelo como no administrador, obtendrá información que es muy similar al paso
anterior.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 list-people.py
{
<girst API call output omitted>
}
{
"id": "Y2l... 2I",
"emails": [
"[email protected]"
],
"PhoneNumbers": [
{
"type": "mobile",
"value": "+1234567890"
}
],
"DisplayName": "DisplayName",
"nickName": "nickName",
"FirstName": "FirstName",
"lastName": "lastName",
"avatar": "https://9643-417f-9974...6baa4~1600 ",
"OrgID": "Y2l... MGY",
"created": "2012-06-15T20:39:19.726Z",
"LastActivity": "2020-06-04T 14:39:36 .535Z",
"status": "active",
"type": "person"
}
devasc @labvm: ~/labs/devnet-src/webex-teams$
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 5 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
Paso 2: Utilizar una secuencia de comandos de Python para enumerar todas las salas de un
usuario autenticado.
a. Para este paso, deberá ser miembro de al menos una sala. Una conversación con otra persona se
considera una sala en Webex.
b. En Código VS, haga clic en el archivo list-rooms.py.
c. Coloque el código siguiente en el archivo. Asegúrese de reemplazar su_token_aquí con su token de
acceso personal.
Solicitudes de importación.
access_token = 'your_token_here'
url = 'https://webexapis.com/v1/rooms'
headers = (
'Authorization': 'Bearer {}'.format(access_token),
'Content-Type': 'application/json'
}
params= {'max': '100'}
res = requests.get(url, headers=headers, params=params)
print (res.json ())
d. Guarde y ejecute el archivo. Su resultado va a ser diferente del siguiente. Solo hay una sala en la lista.
Los valores de ID se han truncado.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 list-rooms.py
{'items': [{'id': 'Y2l...ZTE0', 'title': 'User Name', 'type': 'direct', 'isLocked':
False, 'lastActivity': '2020-06-01T16:34:56.536Z', 'creatorId': 'Y2lz...yM2U',
'created': '2020-06-01T16:30:21.816Z', 'ownerId': 'Y2lz...xMGY'}
# salas adicionales mostradas hasta el valor "máximo".
]}
devasc @labvm: ~/labs/devnet-src/webex-teams$
Paso 4: Utilizar una secuencia de comandos de Python para crear una sala.
a. En Código VS, haga clic en el archivo create-rooms.py.
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 6 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
access_token = 'your_token_here'
url = 'https://webexapis.com/v1/rooms'
headers = (
'Authorization': 'Bearer {}'.format(access_token),
'Content-Type': 'application/json'
}
params= {'title': 'DevNet Associate Training! '}
res = requests.post(url, headers=headers, json=params)
print (res.json ())
c. Guarde y ejecute el archivo. Debería obtener una respuesta similar a la siguiente. Los valores de ID se
han truncado. El ID de la sala y el título están resaltados. Copie el ID de la sala y guárdelo en un archivo
de texto para utilizarlo en el resto de este laboratorio.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 create-rooms.py
{'id': 'Y2l... gNm', 'title': 'DevNet Associate Training! ', 'type': 'group',
'isLocked': False, 'lastActivity': '2020-06-04T 16:50:19 .371Z', 'CreatoriID': 'Y2l...
M2U', 'created': '2020-06-04T 16:50:19 .371Z', 'ownerId': 'Y2l... MGY'}
devasc @labvm: ~/labs/devnet-src/webex-teams$
d. ¡En su aplicación Webex, verifique que ahora vea la sala de formación de asociados de DevNet!
Actualmente eres el único miembro.
access_token = 'your_token_here'
room_id = 'your_room_id'
url = 'https://webexapis.com/v1/rooms/{}/meetingInfo'.format(room_id)
headers = (
'Authorization': 'Bearer {}'.format(access_token),
'Content-Type': 'application/json'
}
res = requests.get(url, headers=headers)
print (res.json ())
c. Guarde y ejecute el archivo. Debería obtener una respuesta similar a la siguiente. Los valores se han
truncado.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 get-room-details.py
{'RoomId': 'Y2l... gnm', 'MeetingLink': 'https://cisco.webex.com/m/3272...a837',
'sipAddress': '[email protected]', 'MeetingNumber': '162... 0468',
'CallIntollFreeNumber': '+1-866-... -9903', 'CallInTollNumber': '+1-408-... -6800'}
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 7 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
Paso 2: Utilizar una secuencia de comandos de Python para enumerar los miembros de la sala.
a. En Código VS, haga clic en el archivo list-memberships.py.
b. Coloque el código siguiente en el archivo. Reemplace su_token_aquí con su token de acceso personal.
Reemplace su_id_de sala con el valor que obtuvo en la parte anterior.
Solicitudes de importación.
access_token = 'your_token_here'
room_id = 'your_room_id'
url = 'https://webexapis.com/v1/memberships'
headers = (
'Authorization': 'Bearer {}'.format(access_token),
'Content-Type': 'application/json'
}
params = {'RoomId': room_id}
res = requests.get(url, headers=headers, params=params)
print (res.json ())
c. Guarde y ejecute el archivo. Debería obtener una respuesta similar a la siguiente. Usted debe ser el
único miembro a menos que haya agregado a alguien en la aplicación Webex. Los valores de ID se han
truncado.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 list-memberships.py
{'items': [{'id': 'Y2l... rJzg', 'RoomId': 'Y2l... gnm', 'personId': 'Y2l... M2U',
'PersonEmail': '[email protected]', 'PersonDisplayName': 'PersonDisplayName',
'PersonOrgID': 'Y2l... MGY', ',', ':': 'IsModerator': ':': ':': ':': ':' False,
'isMonitor': False, 'creado': '2020-06-04T 16:50:19 .819Z'}]}
devasc @labvm: ~/labs/devnet-src/webex-teams$
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 8 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
Paso 4: Utilizar una secuencia de comandos de Python para crear una membresía, agregando a
alguien a la sala.
Para este paso, necesitará el correo electrónico de otra persona que sea un usuario registrado de Webex en
su organización. Puedes usar el mismo correo electrónico que utilizaste anteriormente para enumerar los
detalles de una persona.
a. En Código VS, haga clic en el archivo create-membership.py.
b. Coloque el siguiente código en el archivo. Reemplace su_token_aquí con su token de acceso personal.
Reemplace su_id_de sala con el valor que obtuvo en la parte anterior. Reemplace new-
[email protected] por el correo electrónico de la persona que desea agregar a la sala.
Solicitudes de importación.
access_token = 'your_token_here'
room_id = 'your_room_id'
person_email = '[email protected]'
url = 'https://webexapis.com/v1/memberships'
headers = (
'Authorization': 'Bearer {}'.format(access_token),
'Content-Type': 'application/json'
}
params = {'RoomId': room_id, 'personEmail': person_email}
res = requests.post(url, headers=headers, json=params)
print (res.json ())
c. Guarde y ejecute el archivo. Debería obtener una respuesta similar a la siguiente. Usted debe ser el
único miembro a menos que haya agregado a alguien en la aplicación Webex. Los valores de ID se han
truncado.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 list-memberships.py
{'items': [{'id': 'Y2l... rJzg', 'RoomId': 'Y2l... gnm', 'personId': 'Y2l... M2U',
'PersonEmail': '[email protected]', 'PersonDisplayName': 'PersonDisplayName',
'PersonOrgID': 'Y2l... MGY', ',', ':': 'IsModerator': ':': ':': ':': ':' False,
'isMonitor': False, 'creado': '2020-06-04T 16:50:19 .819Z'}]}
devasc @labvm: ~/labs/devnet-src/webex-teams$
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 9 de 10
www.netacad.com
Laboratorio - Construir un script de Python para administrar equipos de Webex.
Paso 2: Utilizar una secuencia de comandos de Python para enviar un mensaje a una sala
Webex.
a. En Código VS, haga clic en el archivo creat-markdown-message.py.
b. Coloque el código siguiente en el archivo. Reemplace su_token_aquí con su token de acceso personal.
Reemplace su_id_de sala con el valor que obtuvo en la parte anterior.
Solicitudes de importación.
access_token = 'your_token_here'
room_id = 'your_room_id'
message = 'Hello **DevNet Associates**!!'
url = 'https://webexapis.com/v1/messages'
headers = (
'Authorization': 'Bearer {}'.format(access_token),
'Content-Type': 'application/json'
}
params = {'RoomId': room_id, 'markdown': message}
res = requests.post(url, headers=headers, json=params)
print (res.json ())
c. Guarde y ejecute el archivo. Debería obtener una respuesta similar a la siguiente. Observe que la rebaja
se convirtió a HTML. Los valores de ID se han truncado.
devasc @labvm: ~/labs/devnet-src/webex-teams$ python3 create-markdown-
message.py
{'id': 'Y2l...RjZg', 'roomId': 'Y2l...GNm', 'roomType': 'group', 'text': 'Hello DevNet
Associates!!', 'personId': 'Y2l...M2U', 'personEmail': '[email protected]', 'markdown':
'Hello **DevNet Associates**!!', 'html'<p>: 'Hello DevNet
Associates!!',<strong></strong></p> 'created': '2020-06-04T19:08:49.145Z'}
devasc @labvm: ~/labs/devnet-src/webex-teams$
Fin del documento
- 金曜日 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 10 de 10
www.netacad.com