SlideShare a Scribd company logo
1 of 75
#CLUS
Stève Sfartz, API Evangelist
DEVNET-3610
WebexTeams APIs
for Admin
and Serviceability
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
/Cisco/DevNet/SteveSfartz
• API Evangelist @CiscoDevNet
• API Design,Architecture and Operations
• WebexTeams & Devices/xAPI developer
• hosted @CiscoROI: Paris Innovation Center
• Node.js mainly, a bit of #golang
• Europe and all over the world
• github://ObjectIsAdvantag
DEVNET-3610
“vision without
execution is
hallucination”
-- Thomas Edison
mailto: stsfartz@cisco.com
twitter: @SteveSfartz
2
Agenda
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
• REST API forWebex Administrators
• Managing Users, Roles & Licenses from
Code
• ComplianceOfficer and /events API
• CE xAPI for Cloud-registered Devices
• PersonalizingWebex Devices
• Fetching Room Analytics from Code
DEVNET-3610 3
WebexTeams
Admin APIs
Overview
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
https://admin.webex.com
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Administrator Role
• A user can be assigned various roles
• Full administrator
• Read-only administrator
• Support administrator
• Compliance officer
6DEVNET-3610
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Admin Sandbox
IF you are NOT an administrator of a WebexTeams organization
• Send an email to devsupport@ciscospark.com
• from aWebexTrial account: this email address should not have been previously
used forWebex.Your home email address or a web email service is recommended.
• dev support will add this account to the Admin Sandbox organization
• As your new admin account is created, you will receive an email inviting you to
administer the Sandbox organization. Follow the instructions to complete the
activation.
• You are now an admin of theWebexTeams sandbox organization, along
with others developers who’ve been granted access.
7DEVNET-3610
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
WebexTeams API v1 (for admins)
/People
/Organizations
/Roles /Licenses /Policies /Events /Metrics
List People List Organizations List Roles List Licenses List Policies List Events
Get Metrics Report
Create a Person Create a Policy
Get details Get details Get details Get details Get Details Get Details
Update a Person Update a Policy
Delete a Person Delete a Policy
GET GET GET GET
GET GET GETGET
POST
DELETE
PUT
GET
GET
POST
DELETE
PUT
GET
GET
GET
DEVNET-3610
90 or unlimited days
depending on
Pro Pack subscription
8
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610
fromAdministrator Roles …. to OAuth Scopes
9
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
‘scoped’ Adminstrator access tokens
DEVNET-3610 10
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610
https://www.cisco.com/go/pro-pack
11
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS 12DEVNET-3610
https://collaborationhelp.cisco.com/article/en-us/np3c1rm
Use case:
Checking User Details
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
What is so great about REST?
same concept, many Cisco APIs
Easy to Build
Web apps
Mobile apps
M2M, Bots…
REST API
DEVNET-3610 14
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
‘Your App’
now with
Cisco Collab!
WebexTeams REST API
extend Cisco Collaboration Cloud
GET
POST
DELETE
PUT /Rooms
/Memberships
/Messages
/Teams
/People
/Webhooks
DEVNET-3610 15
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Terminology of a REST API query
DEVNET-3610
GET /../repos?page=1 HTTP/1.1 accept: application/json
HTTP 200 OK
browser api.github.com:443
method path protocol
status code
https://api.github.com/users/CiscoDevNet/repos?page=1&per_page=2
headers
URL:
response body
HTTP
request
HTTP
response
api endpoint
JSON payload
parameters
16
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
HTTP Request : Methods
• GET – retrieve contents from the server
• HEAD – only get the HTTP headers & status code (don't GET the body)
• PUT – update content
• PATCH – partial update
• POST – create content
• DELETE – delete content
• OPTIONS – retrieve contextual information before issuing a request
• checkW3C RFC 7230-7 to get an exhaustive list of HTTP/1.1 methods
DEVNET-3610 17
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
HTTP Response : Status Codes
 1xx - Information
 100 Continue
 2xx - Success
 200 OK, 201 Created, 204 No Content
 3xx - Redirection
 301 Moved permanently, 304 Not modified
 4xx - Client error
 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found
 5xx - Server error
 500 Internal Error, 501 Not Implemented, 503 Service Unavailable
 interactive map at www.restapitutorial.com/httpstatuscodes.html
DEVNET-3610 18
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
JSON syntax
• square brackets for lists
• curly braces for objects
• name/value pairs for properties,
separated by commas
• pick an online editor
• http://codebeautify.org/jsonviewer
http://www.jsoneditoronline.org
DEVNET-3610 19
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Get Person Details
 As aWebexTeams User
 Presence attributes for people in your organization
 lastActivity: “YYYY-MM-DDTHH:MM:SS.SSSZ” ISO8601 format
 status: “active”, “inactive”, “OutOfOffice”, “DoNotDisturb”
 As aWebex Administrator
 Check an invited user’s provisioning status: “invitePending”, “loginEnabled”
DEVNET-3610 20
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610
Creating of a WebexTeams User
ResponseRequest
21
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
After user’s first sign in
DEVNET-3610
Response
22
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
After user’s activity
DEVNET-3610
Response
23
Use case:
Update Licenses
for aWebex User
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Updating Licenses
• Pick a Person id and extra Licenses, update the Person with a PUT
/people/<id>
DEVNET-3610 25
Compliance
and /eventsAPI
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Webex Compliance
Enforce company policies
DEVNET-3610
eDiscovery Search
and Extraction
Flexible Retention
Policy Administration
Enforce
company
retention
policies
Comply
with legal
requests
Integrate with
Existing DLP,
Archival and
eDiscovery
Events
API
27
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Compliance Officer
• Ensures that a company is conducting its business in full compliance with all
laws and regulations
• searchWebex for space IDs, keywords, shared files, and any email address used in
your organization. Generate reports and download data in JSON format.
• TheWebexTeams RESTAPI has compliance authorization scopes that
support the compliance officer’s role.
• access and manage all data created by their organization including messages,
content attachments, etc. in order to monitor data and to mitigate compliance
issues
DEVNET-3610 28
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Compliance Officer
• Note that
• [TBC] Full administrators can't assign the compliance officer role to
themselves. Another full administrator must assign the role to them.
• Administrators can limit the amount of messages and files that are kept by
configuring a data retention policy.When that threshold is met, aging
content gets purged.
DEVNET-3610 29
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Extension of
Cisco Spark
Control Hub
Search on email ID,
space ID, keywords
Designed for
Compliance
Officer
90-day in Webex base offer, any time period with Webex Pro Pack
Search Compliance Data
30DEVNET-3610
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610
JSON data reports
https://collaborationhelp.cisco.com/article/en-us/nr70c1m
Actor An actor represents the person or entity that initiated the event or action.
Object An object is the person or conversation or entity that is being operated on. For example,
someone sends a message, the object will be of type comment. If someone adds Bob to a
to a space, the object will of type person. If someone shares a file, the object will be of
type file.
Target A target is the place or destination the action is directed towards.Target is
always conversation (for example, a conversation in a space).
Verb A verb is the type of action being performed. For messages, the action is usually post but could
31
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
jq example to parse JSON data
DEVNET-3610 32
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610
https://collaborationhelp.cisco.com/article/en-us/np3c1rm
33
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Events API
https://developer.webex.com/resource-events.html
DEVNET-3610
Enables polling for events and
content that enables
organizations to monitor and
correct behavior, preventing the
loss of sensitive data
Cisco Cloudlock will be the first
integration to provide DLP
management via the Events API
Third party
DLP or CASBCisco Spark Events API
Governance code
Corrective actions
- delete content
- remove member
- alert admin/user
34
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Compliance ‘scopes’
DEVNET-3610 35
Hands-on with Postman
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
http://getpostman.com
• Want to code along? Install POSTMAN now
• Free tool to forge API requests, examine responses
DEVNET-3610 37
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
method
url
request
headers
status code
response headers
content-type
response
body
query parameters
DEVNET-3610 38
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Tip: import theWebex Admin API colllection
https://github.com/CiscoDevNet/postman-ciscospark#admin-api
https://raw.github..../admin-scripted.json
DEVNET-3610 39
Demo: AutomateWebex from Code
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Generate code with Postman
1. Start from a REST call
2. Select your favorite language
3. Run your code
DEVNET-3610 41
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
… or leverage aWebexTeams SDK
for javascript, python, ruby, php…
• Official SDKs
• Community SDKs
• node-sparky, node-spark-client
• python ciscosparkapi
• …
DEVNET-3610
https://github.com/nmarus/sparky
https://github.com/CiscoDevNet/ciscosparkapi
42
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Security Best Practices
• Forge custom access tokens
• Restrict to the scopes required by your code
• Using anWebex OAuth integration
• « Running an OAuth Integration Locally »
• https://learninglabs.cisco.com/tracks
/collab-cloud/creating-spark-integrations-sd
/collab-spark-intl/step/1
DEVNET-3610 43
Agenda
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
• REST API forWebex Administrators
• Managing Users, Roles & Licenses from
Code
• ComplianceOfficer and /events API
• CE xAPI for Cloud-registered Devices
• PersonalizingWebex Devices
• Fetching Room Analytics from Code
DEVNET-3610 44
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Admin UI for cloud-registered Webex Devices
https://admin.webex.com/devices
DEVNET-3610
http://192.168.1.34/cloud-login
45
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Adding user credentials to access your device
http://192.168.1.34/web/localusers
• Create a local ‘integrator’ user
• Connect via SSH with the Integrator user credentials
• REQUIREMENT: local network connectivity to the device
DEVNET-3610 46
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
https://developer.cisco.com/site/sandbox/
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Prototype with the RoomKit Sandboxes
DEVNET-3610 48
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Waking up your system (viaWebUI andTSH)
*s Standby State: Off
xcommand Standby Deactivate
http://<ip-address>/web/personalization
Other Standby commands
- xcommand Standby Activate
- xcommand Standby Halfwake
DEVNET-3610 49
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Personalization via Web UI & ssh
xConfiguration UserInterface CustomMessage: “Welcome to the DevNet Zone"
http://<ip-address>/web/personalization
DEVNET-3610 50
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Personalization via Postman
DEVNET-3610 51
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Personalization: Brand logo (awake) via WebUI
*e UserInterface Branding Updated
Type: "Branding"
DEVNET-3610 52
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Personalization: Brand logo (awake) viaTSH
Your logo
272x272
Example:
https://www.base64-image.de/
 Turn your image (PNG, 272px272p) to base64 bytes
 Remove heading string (such as ‘data:image/png;base64’)
 Paste to the command line and hit Enter
 Add ‘.’ and hit Enter again
544523454353
BVHhe7d2/WuJ
MH8b…x4T0W
sNjLI4hCYII=
xcommand UserInterface Branding Upload Type: Branding
iVBORw0KGgoAAAANSUhEUgAAARAAAAEQCAYAAAB4CisVAAAAAXNSR0IArs4c6Q
AAAppLdq81bWeZNTvqk+uW5x7p/On5ZEcWb/pjN/uRDxGPoVINtH4xv+OG3wqZPVtK5J
b/tiTa7Ln0j37vMp7zhCQgtx9StANi/2be0yMY2dCLq9NTf1p4fdzK8apvV/sZpGD483tCyQ8
zym42zfbx3hl++=.
OK
*r BrandingUploadResult (status=OK):
** end
*e UserInterface Branding Updated Type: "Branding"
** end
DEVNET-3610 53
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Personalization: Brand logo (awake) via Postman
Your logo
272x272
Example:
https://www.base64-image.de/
 Turn your image (PNG, 272px272p) to base64 bytes
 Remove heading string (such as ‘data:image/png;base64’)
 Forge XML PUT request in Postman
544523454353
BVHhe7d2/WuJ
MH8b…x4T0W
sNjLI4hCYII=
DEVNET-3610 54
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
To go further: import an xAPI colllection
https://github.com/CiscoDevNet/postman-xapi#integrator
DEVNET-3610
https://raw.github..../xapi-integrator.json
55
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Resources
cs.co/roomdevices
• Telepresence Deploy XML APP
• https://github.com/voipnorm/CiscoTPCustomXML
• Advanced Settings for Room and Desk Devices
• https://collaborationhelp.cisco.com/article/en-us/n5pqqcm
• Postman collections
• https://github.com/CiscoDevNet/postman-xapi
• xAPI samples
• https://github.com/ObjectIsAdvantag/xapi-samples
• Awesome-xapi
• https://github.com/CiscoDevNet/awesome-xapi
DEVNET-3610 56
Webex Devices
Programmability
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS 58DEVNET-3610
https://github.com/ObjectIsAdvantag/roomkit-react-map
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Cisco Collaboration Devices Programmability
59DEVNET-3610
Pull
data
Listen to
events
Embed
code
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
xAPI
60DEVNET-3610
Pull
data
xstatus, xconfig,xcommand
local network connectivity*
(coming viaWebex Cloud)
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
xAPI
61DEVNET-3610
Pull
data
Listen to
events
xstatus, xconfig,xcommand
xfeedback
Invoke remote APIs
Interact with control systemslocal network connectivity*
(coming viaWebex Cloud)
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
xAPI
62DEVNET-3610
Pull
data
Listen to
events
Embed
code
Javascript
Macros
All CE devices but SX10
No remote API calls*
Admin role only* (coming support for cloud-
registered, HttpFeedback)
xstatus, xconfig,xcommand
xfeedback
Invoke remote APIs
Interact with control systemslocal network connectivity*
(coming viaWebex Cloud)
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Ultrasound
https://github.com/ObjectIsAdvantag/xapi-samples/tree/master/controls/ultrasound
63DEVNET-3610
Give users control to your
devices’ Ultrasound
MaxVolume
• In-Room Control
• Macro-compatible
custom message pushed to your
devices’Touch10/DX interface as
pairing is enabled / disabled.
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Notifier
https://github.com/ObjectIsAdvantag/xapi-samples/tree/master/controls/notifier
64DEVNET-3610
Captures an email address
• In-RoomControl
• state management
• macro-compatible
• Node.js jsxapi
• WebexTeams Bot
account
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Agenda with notifications
https://github.com/ObjectIsAdvantag/xapi-samples/tree/master/controls/agenda_notif
65DEVNET-3610
Pushes session details to a
WebexTeams space
• In-RoomControl
• Node.js jsxapi
• Incoming webhook
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Maze Game
https://github.com/ObjectIsAdvantag/xapi-samples/tree/master/controls/maze-scores
66DEVNET-3610
End-to-end enrichedUser
Experience for Meeting
Rooms
• In-RoomControl
• macro
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
In-Room Simulator
https://controls-editor.herokuapp.com/playground.html?virtualroom
67DEVNET-3610
End-to-end enrichedUser
Experience for Meeting
Rooms
• In-RoomControl
• Node.js jsxapi
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Interactive Live Map
https://github.com/ObjectIsAdvantag/roomkit-react-map
68DEVNET-3610
Interactive map showing
PeopleCount analytics from a
set of Room Kits
• React
• Node.js
• ‘jsxapi’
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Collect data from devices
https://github.com/ObjectIsAdvantag/roomkit-collector
GET / healthcheck
GET /devices
GET /devices/Workbench1
GET /devices/Workbench1/average?period=60
GET /devices/Workbench1/last
GET /devices/Workbench1/max
69DEVNET-3610
Node.js local service collecting PeopleCount events
from a RoomKit deployment,
to compute weighted averages
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Resources
• In-RoomControls Learning Lab
• https://learninglabs.cisco.com/lab/collab-xapi-controls/step/1
• xAPI samples
• https://github.com/ObjectIsAdvantag/xapi-samples
• ‘xAPI devs’ community space
• https://eurl.io/#rkp76XDrG
• awesome-xapi catalog
• https://github.com/CiscoDevNet/awesome-xapi
70DEVNET-3610
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
xAPI module at DevNet
https://learninglabs.cisco.com/modules/xapi-intro
71DEVNET-3610
Complete your online session evaluation
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS
Give us your feedback to be entered into a
Daily Survey Drawing.
Complete your session surveys through the
Cisco Live mobile app or on
www.CiscoLive.com/us.
Don’t forget: Cisco Live sessions will be available for viewing on
demand after the event at www.CiscoLive.com/Online.
DEVNET-3610 72
Q&A
Thank you
#CLUS
#CLUS

More Related Content

What's hot

when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...Cisco DevNet
 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCisco DevNet
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco DevNet
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Cisco DevNet
 
Rome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsRome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsCisco DevNet
 
Getting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsGetting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsCisco DevNet
 
Cisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco DevNet
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to AnsibleCisco DevNet
 
WAN Automation Engine API Deep Dive
WAN Automation Engine API Deep DiveWAN Automation Engine API Deep Dive
WAN Automation Engine API Deep DiveCisco DevNet
 
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco DevNet
 
Cisco's Open Device Programmability Strategy: Open Discussion
Cisco's Open Device Programmability Strategy: Open DiscussionCisco's Open Device Programmability Strategy: Open Discussion
Cisco's Open Device Programmability Strategy: Open DiscussionCisco DevNet
 
How to Build Advanced Voice Assistants and Chatbots
How to Build Advanced Voice Assistants and ChatbotsHow to Build Advanced Voice Assistants and Chatbots
How to Build Advanced Voice Assistants and ChatbotsCisco DevNet
 
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap APIBuilding a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap APICisco DevNet
 
NetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsNetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsHank Preston
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Cisco DevNet
 
OpenStack Enabling DevOps
OpenStack Enabling DevOpsOpenStack Enabling DevOps
OpenStack Enabling DevOpsCisco DevNet
 
Why Automate the Network?
Why Automate the Network?Why Automate the Network?
Why Automate the Network?Hank Preston
 
DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet Express - Spark & Tropo API - Lisbon May 2016DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet Express - Spark & Tropo API - Lisbon May 2016Cisco DevNet
 
DevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes IntegrationDevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes IntegrationHank Preston
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningCisco DevNet
 

What's hot (20)

when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using Spark
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API Workshop
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
 
Rome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat botsRome 2017: Building advanced voice assistants and chat bots
Rome 2017: Building advanced voice assistants and chat bots
 
Getting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsGetting Started: Developing Tropo Applications
Getting Started: Developing Tropo Applications
 
Cisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable Web
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
 
WAN Automation Engine API Deep Dive
WAN Automation Engine API Deep DiveWAN Automation Engine API Deep Dive
WAN Automation Engine API Deep Dive
 
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
 
Cisco's Open Device Programmability Strategy: Open Discussion
Cisco's Open Device Programmability Strategy: Open DiscussionCisco's Open Device Programmability Strategy: Open Discussion
Cisco's Open Device Programmability Strategy: Open Discussion
 
How to Build Advanced Voice Assistants and Chatbots
How to Build Advanced Voice Assistants and ChatbotsHow to Build Advanced Voice Assistants and Chatbots
How to Build Advanced Voice Assistants and Chatbots
 
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap APIBuilding a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
 
NetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsNetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO Configurations
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 
OpenStack Enabling DevOps
OpenStack Enabling DevOpsOpenStack Enabling DevOps
OpenStack Enabling DevOps
 
Why Automate the Network?
Why Automate the Network?Why Automate the Network?
Why Automate the Network?
 
DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet Express - Spark & Tropo API - Lisbon May 2016DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet Express - Spark & Tropo API - Lisbon May 2016
 
DevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes IntegrationDevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes Integration
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listening
 

Similar to Webex Admin APIs for User Management

Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Cisco DevNet
 
Cisco Connect Toronto 2018 an introduction to Cisco kinetic
Cisco Connect Toronto 2018   an introduction to Cisco kineticCisco Connect Toronto 2018   an introduction to Cisco kinetic
Cisco Connect Toronto 2018 an introduction to Cisco kineticCisco Canada
 
Cisco Connect Toronto 2018 an introduction to Cisco kinetic
Cisco Connect Toronto 2018   an introduction to Cisco kineticCisco Connect Toronto 2018   an introduction to Cisco kinetic
Cisco Connect Toronto 2018 an introduction to Cisco kineticCisco Canada
 
Cisco Connect Ottawa 2018 dev net
Cisco Connect Ottawa 2018 dev netCisco Connect Ottawa 2018 dev net
Cisco Connect Ottawa 2018 dev netCisco Canada
 
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Cisco DevNet
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet OverviewCisco Canada
 
Cisco Connect Toronto 2018 cloud and on premises collaboration security exp...
Cisco Connect Toronto 2018   cloud and on premises collaboration security exp...Cisco Connect Toronto 2018   cloud and on premises collaboration security exp...
Cisco Connect Toronto 2018 cloud and on premises collaboration security exp...Cisco Canada
 
Create B2B Exchanges with Cisco Connected Processes: an overview
Create B2B Exchanges with Cisco Connected Processes: an overviewCreate B2B Exchanges with Cisco Connected Processes: an overview
Create B2B Exchanges with Cisco Connected Processes: an overviewCisco DevNet
 
Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018Ashley Roach
 
10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기DongHee Lee
 
Incredible Compute Density: Cisco DNA Center Platform: Digging Deeper with APIs
Incredible Compute Density: Cisco DNA Center Platform: Digging Deeper with APIsIncredible Compute Density: Cisco DNA Center Platform: Digging Deeper with APIs
Incredible Compute Density: Cisco DNA Center Platform: Digging Deeper with APIsRobb Boyd
 
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
DEVNET-2002	Coding 201: Coding Skills 201: Going Further with REST and Python...DEVNET-2002	Coding 201: Coding Skills 201: Going Further with REST and Python...
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...Cisco DevNet
 
How to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable AgeHow to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable AgeHank Preston
 
Oracle Blockchain Experience Day
Oracle Blockchain Experience DayOracle Blockchain Experience Day
Oracle Blockchain Experience DayJuarez Junior
 
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...javier ramirez
 
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOpsOpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOpsjavier ramirez
 
Oracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneyOracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneySimon Haslam
 
Cisco Connect 2018 Malaysia - Secure data center-building a secure zero-trus...
Cisco Connect 2018 Malaysia -  Secure data center-building a secure zero-trus...Cisco Connect 2018 Malaysia -  Secure data center-building a secure zero-trus...
Cisco Connect 2018 Malaysia - Secure data center-building a secure zero-trus...NetworkCollaborators
 
Elastic Cloud Enterprise @ Cisco
Elastic Cloud Enterprise @ CiscoElastic Cloud Enterprise @ Cisco
Elastic Cloud Enterprise @ CiscoElasticsearch
 
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatengeKarin Patenge
 

Similar to Webex Admin APIs for User Management (20)

Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610
 
Cisco Connect Toronto 2018 an introduction to Cisco kinetic
Cisco Connect Toronto 2018   an introduction to Cisco kineticCisco Connect Toronto 2018   an introduction to Cisco kinetic
Cisco Connect Toronto 2018 an introduction to Cisco kinetic
 
Cisco Connect Toronto 2018 an introduction to Cisco kinetic
Cisco Connect Toronto 2018   an introduction to Cisco kineticCisco Connect Toronto 2018   an introduction to Cisco kinetic
Cisco Connect Toronto 2018 an introduction to Cisco kinetic
 
Cisco Connect Ottawa 2018 dev net
Cisco Connect Ottawa 2018 dev netCisco Connect Ottawa 2018 dev net
Cisco Connect Ottawa 2018 dev net
 
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet Overview
 
Cisco Connect Toronto 2018 cloud and on premises collaboration security exp...
Cisco Connect Toronto 2018   cloud and on premises collaboration security exp...Cisco Connect Toronto 2018   cloud and on premises collaboration security exp...
Cisco Connect Toronto 2018 cloud and on premises collaboration security exp...
 
Create B2B Exchanges with Cisco Connected Processes: an overview
Create B2B Exchanges with Cisco Connected Processes: an overviewCreate B2B Exchanges with Cisco Connected Processes: an overview
Create B2B Exchanges with Cisco Connected Processes: an overview
 
Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018
 
10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기10thMeetup-20190420-REST API Design Principles 되새기기
10thMeetup-20190420-REST API Design Principles 되새기기
 
Incredible Compute Density: Cisco DNA Center Platform: Digging Deeper with APIs
Incredible Compute Density: Cisco DNA Center Platform: Digging Deeper with APIsIncredible Compute Density: Cisco DNA Center Platform: Digging Deeper with APIs
Incredible Compute Density: Cisco DNA Center Platform: Digging Deeper with APIs
 
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
DEVNET-2002	Coding 201: Coding Skills 201: Going Further with REST and Python...DEVNET-2002	Coding 201: Coding Skills 201: Going Further with REST and Python...
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
 
How to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable AgeHow to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable Age
 
Oracle Blockchain Experience Day
Oracle Blockchain Experience DayOracle Blockchain Experience Day
Oracle Blockchain Experience Day
 
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
 
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOpsOpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
 
Oracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneyOracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer Journey
 
Cisco Connect 2018 Malaysia - Secure data center-building a secure zero-trus...
Cisco Connect 2018 Malaysia -  Secure data center-building a secure zero-trus...Cisco Connect 2018 Malaysia -  Secure data center-building a secure zero-trus...
Cisco Connect 2018 Malaysia - Secure data center-building a secure zero-trus...
 
Elastic Cloud Enterprise @ Cisco
Elastic Cloud Enterprise @ CiscoElastic Cloud Enterprise @ Cisco
Elastic Cloud Enterprise @ Cisco
 
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
 

More from Cisco DevNet

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023Cisco DevNet
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfCisco DevNet
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPICisco DevNet
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseCisco DevNet
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetCisco DevNet
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersCisco DevNet
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Cisco DevNet
 
Embedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsEmbedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsCisco DevNet
 
BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017Cisco DevNet
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Cisco DevNet
 
Phone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessPhone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessCisco DevNet
 
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Cisco DevNet
 
From ZERO to REST in an hour
From ZERO to REST in an hour From ZERO to REST in an hour
From ZERO to REST in an hour Cisco DevNet
 
building microservices
building microservicesbuilding microservices
building microservicesCisco DevNet
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to MicroservicesCisco DevNet
 
RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)Cisco DevNet
 

More from Cisco DevNet (16)

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdf
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPI
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
Embedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsEmbedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your apps
 
BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
 
Phone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessPhone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo Serverless
 
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
 
From ZERO to REST in an hour
From ZERO to REST in an hour From ZERO to REST in an hour
From ZERO to REST in an hour
 
building microservices
building microservicesbuilding microservices
building microservices
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)
 

Recently uploaded

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

Webex Admin APIs for User Management

  • 1. #CLUS Stève Sfartz, API Evangelist DEVNET-3610 WebexTeams APIs for Admin and Serviceability
  • 2. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS /Cisco/DevNet/SteveSfartz • API Evangelist @CiscoDevNet • API Design,Architecture and Operations • WebexTeams & Devices/xAPI developer • hosted @CiscoROI: Paris Innovation Center • Node.js mainly, a bit of #golang • Europe and all over the world • github://ObjectIsAdvantag DEVNET-3610 “vision without execution is hallucination” -- Thomas Edison mailto: stsfartz@cisco.com twitter: @SteveSfartz 2
  • 3. Agenda © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS • REST API forWebex Administrators • Managing Users, Roles & Licenses from Code • ComplianceOfficer and /events API • CE xAPI for Cloud-registered Devices • PersonalizingWebex Devices • Fetching Room Analytics from Code DEVNET-3610 3
  • 5. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS https://admin.webex.com
  • 6. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Administrator Role • A user can be assigned various roles • Full administrator • Read-only administrator • Support administrator • Compliance officer 6DEVNET-3610
  • 7. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Admin Sandbox IF you are NOT an administrator of a WebexTeams organization • Send an email to devsupport@ciscospark.com • from aWebexTrial account: this email address should not have been previously used forWebex.Your home email address or a web email service is recommended. • dev support will add this account to the Admin Sandbox organization • As your new admin account is created, you will receive an email inviting you to administer the Sandbox organization. Follow the instructions to complete the activation. • You are now an admin of theWebexTeams sandbox organization, along with others developers who’ve been granted access. 7DEVNET-3610
  • 8. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS WebexTeams API v1 (for admins) /People /Organizations /Roles /Licenses /Policies /Events /Metrics List People List Organizations List Roles List Licenses List Policies List Events Get Metrics Report Create a Person Create a Policy Get details Get details Get details Get details Get Details Get Details Update a Person Update a Policy Delete a Person Delete a Policy GET GET GET GET GET GET GETGET POST DELETE PUT GET GET POST DELETE PUT GET GET GET DEVNET-3610 90 or unlimited days depending on Pro Pack subscription 8
  • 9. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610 fromAdministrator Roles …. to OAuth Scopes 9
  • 10. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS ‘scoped’ Adminstrator access tokens DEVNET-3610 10
  • 11. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610 https://www.cisco.com/go/pro-pack 11
  • 12. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS 12DEVNET-3610 https://collaborationhelp.cisco.com/article/en-us/np3c1rm
  • 14. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS What is so great about REST? same concept, many Cisco APIs Easy to Build Web apps Mobile apps M2M, Bots… REST API DEVNET-3610 14
  • 15. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS ‘Your App’ now with Cisco Collab! WebexTeams REST API extend Cisco Collaboration Cloud GET POST DELETE PUT /Rooms /Memberships /Messages /Teams /People /Webhooks DEVNET-3610 15
  • 16. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Terminology of a REST API query DEVNET-3610 GET /../repos?page=1 HTTP/1.1 accept: application/json HTTP 200 OK browser api.github.com:443 method path protocol status code https://api.github.com/users/CiscoDevNet/repos?page=1&per_page=2 headers URL: response body HTTP request HTTP response api endpoint JSON payload parameters 16
  • 17. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS HTTP Request : Methods • GET – retrieve contents from the server • HEAD – only get the HTTP headers & status code (don't GET the body) • PUT – update content • PATCH – partial update • POST – create content • DELETE – delete content • OPTIONS – retrieve contextual information before issuing a request • checkW3C RFC 7230-7 to get an exhaustive list of HTTP/1.1 methods DEVNET-3610 17
  • 18. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS HTTP Response : Status Codes  1xx - Information  100 Continue  2xx - Success  200 OK, 201 Created, 204 No Content  3xx - Redirection  301 Moved permanently, 304 Not modified  4xx - Client error  400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found  5xx - Server error  500 Internal Error, 501 Not Implemented, 503 Service Unavailable  interactive map at www.restapitutorial.com/httpstatuscodes.html DEVNET-3610 18
  • 19. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS JSON syntax • square brackets for lists • curly braces for objects • name/value pairs for properties, separated by commas • pick an online editor • http://codebeautify.org/jsonviewer http://www.jsoneditoronline.org DEVNET-3610 19
  • 20. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Get Person Details  As aWebexTeams User  Presence attributes for people in your organization  lastActivity: “YYYY-MM-DDTHH:MM:SS.SSSZ” ISO8601 format  status: “active”, “inactive”, “OutOfOffice”, “DoNotDisturb”  As aWebex Administrator  Check an invited user’s provisioning status: “invitePending”, “loginEnabled” DEVNET-3610 20
  • 21. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610 Creating of a WebexTeams User ResponseRequest 21
  • 22. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS After user’s first sign in DEVNET-3610 Response 22
  • 23. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS After user’s activity DEVNET-3610 Response 23
  • 25. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Updating Licenses • Pick a Person id and extra Licenses, update the Person with a PUT /people/<id> DEVNET-3610 25
  • 27. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Webex Compliance Enforce company policies DEVNET-3610 eDiscovery Search and Extraction Flexible Retention Policy Administration Enforce company retention policies Comply with legal requests Integrate with Existing DLP, Archival and eDiscovery Events API 27
  • 28. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Compliance Officer • Ensures that a company is conducting its business in full compliance with all laws and regulations • searchWebex for space IDs, keywords, shared files, and any email address used in your organization. Generate reports and download data in JSON format. • TheWebexTeams RESTAPI has compliance authorization scopes that support the compliance officer’s role. • access and manage all data created by their organization including messages, content attachments, etc. in order to monitor data and to mitigate compliance issues DEVNET-3610 28
  • 29. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Compliance Officer • Note that • [TBC] Full administrators can't assign the compliance officer role to themselves. Another full administrator must assign the role to them. • Administrators can limit the amount of messages and files that are kept by configuring a data retention policy.When that threshold is met, aging content gets purged. DEVNET-3610 29
  • 30. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Extension of Cisco Spark Control Hub Search on email ID, space ID, keywords Designed for Compliance Officer 90-day in Webex base offer, any time period with Webex Pro Pack Search Compliance Data 30DEVNET-3610
  • 31. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610 JSON data reports https://collaborationhelp.cisco.com/article/en-us/nr70c1m Actor An actor represents the person or entity that initiated the event or action. Object An object is the person or conversation or entity that is being operated on. For example, someone sends a message, the object will be of type comment. If someone adds Bob to a to a space, the object will of type person. If someone shares a file, the object will be of type file. Target A target is the place or destination the action is directed towards.Target is always conversation (for example, a conversation in a space). Verb A verb is the type of action being performed. For messages, the action is usually post but could 31
  • 32. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS jq example to parse JSON data DEVNET-3610 32
  • 33. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS DEVNET-3610 https://collaborationhelp.cisco.com/article/en-us/np3c1rm 33
  • 34. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Events API https://developer.webex.com/resource-events.html DEVNET-3610 Enables polling for events and content that enables organizations to monitor and correct behavior, preventing the loss of sensitive data Cisco Cloudlock will be the first integration to provide DLP management via the Events API Third party DLP or CASBCisco Spark Events API Governance code Corrective actions - delete content - remove member - alert admin/user 34
  • 35. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Compliance ‘scopes’ DEVNET-3610 35
  • 37. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS http://getpostman.com • Want to code along? Install POSTMAN now • Free tool to forge API requests, examine responses DEVNET-3610 37
  • 38. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS method url request headers status code response headers content-type response body query parameters DEVNET-3610 38
  • 39. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Tip: import theWebex Admin API colllection https://github.com/CiscoDevNet/postman-ciscospark#admin-api https://raw.github..../admin-scripted.json DEVNET-3610 39
  • 41. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Generate code with Postman 1. Start from a REST call 2. Select your favorite language 3. Run your code DEVNET-3610 41
  • 42. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS … or leverage aWebexTeams SDK for javascript, python, ruby, php… • Official SDKs • Community SDKs • node-sparky, node-spark-client • python ciscosparkapi • … DEVNET-3610 https://github.com/nmarus/sparky https://github.com/CiscoDevNet/ciscosparkapi 42
  • 43. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Security Best Practices • Forge custom access tokens • Restrict to the scopes required by your code • Using anWebex OAuth integration • « Running an OAuth Integration Locally » • https://learninglabs.cisco.com/tracks /collab-cloud/creating-spark-integrations-sd /collab-spark-intl/step/1 DEVNET-3610 43
  • 44. Agenda © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS • REST API forWebex Administrators • Managing Users, Roles & Licenses from Code • ComplianceOfficer and /events API • CE xAPI for Cloud-registered Devices • PersonalizingWebex Devices • Fetching Room Analytics from Code DEVNET-3610 44
  • 45. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Admin UI for cloud-registered Webex Devices https://admin.webex.com/devices DEVNET-3610 http://192.168.1.34/cloud-login 45
  • 46. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Adding user credentials to access your device http://192.168.1.34/web/localusers • Create a local ‘integrator’ user • Connect via SSH with the Integrator user credentials • REQUIREMENT: local network connectivity to the device DEVNET-3610 46
  • 47. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS https://developer.cisco.com/site/sandbox/
  • 48. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Prototype with the RoomKit Sandboxes DEVNET-3610 48
  • 49. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Waking up your system (viaWebUI andTSH) *s Standby State: Off xcommand Standby Deactivate http://<ip-address>/web/personalization Other Standby commands - xcommand Standby Activate - xcommand Standby Halfwake DEVNET-3610 49
  • 50. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Personalization via Web UI & ssh xConfiguration UserInterface CustomMessage: “Welcome to the DevNet Zone" http://<ip-address>/web/personalization DEVNET-3610 50
  • 51. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Personalization via Postman DEVNET-3610 51
  • 52. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Personalization: Brand logo (awake) via WebUI *e UserInterface Branding Updated Type: "Branding" DEVNET-3610 52
  • 53. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Personalization: Brand logo (awake) viaTSH Your logo 272x272 Example: https://www.base64-image.de/  Turn your image (PNG, 272px272p) to base64 bytes  Remove heading string (such as ‘data:image/png;base64’)  Paste to the command line and hit Enter  Add ‘.’ and hit Enter again 544523454353 BVHhe7d2/WuJ MH8b…x4T0W sNjLI4hCYII= xcommand UserInterface Branding Upload Type: Branding iVBORw0KGgoAAAANSUhEUgAAARAAAAEQCAYAAAB4CisVAAAAAXNSR0IArs4c6Q AAAppLdq81bWeZNTvqk+uW5x7p/On5ZEcWb/pjN/uRDxGPoVINtH4xv+OG3wqZPVtK5J b/tiTa7Ln0j37vMp7zhCQgtx9StANi/2be0yMY2dCLq9NTf1p4fdzK8apvV/sZpGD483tCyQ8 zym42zfbx3hl++=. OK *r BrandingUploadResult (status=OK): ** end *e UserInterface Branding Updated Type: "Branding" ** end DEVNET-3610 53
  • 54. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Personalization: Brand logo (awake) via Postman Your logo 272x272 Example: https://www.base64-image.de/  Turn your image (PNG, 272px272p) to base64 bytes  Remove heading string (such as ‘data:image/png;base64’)  Forge XML PUT request in Postman 544523454353 BVHhe7d2/WuJ MH8b…x4T0W sNjLI4hCYII= DEVNET-3610 54
  • 55. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS To go further: import an xAPI colllection https://github.com/CiscoDevNet/postman-xapi#integrator DEVNET-3610 https://raw.github..../xapi-integrator.json 55
  • 56. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Resources cs.co/roomdevices • Telepresence Deploy XML APP • https://github.com/voipnorm/CiscoTPCustomXML • Advanced Settings for Room and Desk Devices • https://collaborationhelp.cisco.com/article/en-us/n5pqqcm • Postman collections • https://github.com/CiscoDevNet/postman-xapi • xAPI samples • https://github.com/ObjectIsAdvantag/xapi-samples • Awesome-xapi • https://github.com/CiscoDevNet/awesome-xapi DEVNET-3610 56
  • 58. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS 58DEVNET-3610 https://github.com/ObjectIsAdvantag/roomkit-react-map
  • 59. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Cisco Collaboration Devices Programmability 59DEVNET-3610 Pull data Listen to events Embed code
  • 60. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS xAPI 60DEVNET-3610 Pull data xstatus, xconfig,xcommand local network connectivity* (coming viaWebex Cloud)
  • 61. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS xAPI 61DEVNET-3610 Pull data Listen to events xstatus, xconfig,xcommand xfeedback Invoke remote APIs Interact with control systemslocal network connectivity* (coming viaWebex Cloud)
  • 62. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS xAPI 62DEVNET-3610 Pull data Listen to events Embed code Javascript Macros All CE devices but SX10 No remote API calls* Admin role only* (coming support for cloud- registered, HttpFeedback) xstatus, xconfig,xcommand xfeedback Invoke remote APIs Interact with control systemslocal network connectivity* (coming viaWebex Cloud)
  • 63. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Ultrasound https://github.com/ObjectIsAdvantag/xapi-samples/tree/master/controls/ultrasound 63DEVNET-3610 Give users control to your devices’ Ultrasound MaxVolume • In-Room Control • Macro-compatible custom message pushed to your devices’Touch10/DX interface as pairing is enabled / disabled.
  • 64. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Notifier https://github.com/ObjectIsAdvantag/xapi-samples/tree/master/controls/notifier 64DEVNET-3610 Captures an email address • In-RoomControl • state management • macro-compatible • Node.js jsxapi • WebexTeams Bot account
  • 65. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Agenda with notifications https://github.com/ObjectIsAdvantag/xapi-samples/tree/master/controls/agenda_notif 65DEVNET-3610 Pushes session details to a WebexTeams space • In-RoomControl • Node.js jsxapi • Incoming webhook
  • 66. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Maze Game https://github.com/ObjectIsAdvantag/xapi-samples/tree/master/controls/maze-scores 66DEVNET-3610 End-to-end enrichedUser Experience for Meeting Rooms • In-RoomControl • macro
  • 67. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS In-Room Simulator https://controls-editor.herokuapp.com/playground.html?virtualroom 67DEVNET-3610 End-to-end enrichedUser Experience for Meeting Rooms • In-RoomControl • Node.js jsxapi
  • 68. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Interactive Live Map https://github.com/ObjectIsAdvantag/roomkit-react-map 68DEVNET-3610 Interactive map showing PeopleCount analytics from a set of Room Kits • React • Node.js • ‘jsxapi’
  • 69. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Collect data from devices https://github.com/ObjectIsAdvantag/roomkit-collector GET / healthcheck GET /devices GET /devices/Workbench1 GET /devices/Workbench1/average?period=60 GET /devices/Workbench1/last GET /devices/Workbench1/max 69DEVNET-3610 Node.js local service collecting PeopleCount events from a RoomKit deployment, to compute weighted averages
  • 70. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Resources • In-RoomControls Learning Lab • https://learninglabs.cisco.com/lab/collab-xapi-controls/step/1 • xAPI samples • https://github.com/ObjectIsAdvantag/xapi-samples • ‘xAPI devs’ community space • https://eurl.io/#rkp76XDrG • awesome-xapi catalog • https://github.com/CiscoDevNet/awesome-xapi 70DEVNET-3610
  • 71. © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS xAPI module at DevNet https://learninglabs.cisco.com/modules/xapi-intro 71DEVNET-3610
  • 72. Complete your online session evaluation © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public#CLUS Give us your feedback to be entered into a Daily Survey Drawing. Complete your session surveys through the Cisco Live mobile app or on www.CiscoLive.com/us. Don’t forget: Cisco Live sessions will be available for viewing on demand after the event at www.CiscoLive.com/Online. DEVNET-3610 72
  • 73. Q&A
  • 75. #CLUS

Editor's Notes

  1. The same HTTP principles that apply to the Web (HTML page) - apply to Web APIs Here ‘s what happens when you consume the github API, More concretely : you hit an Endpoint (here the host: github.com, port: 443), remember it is what HTTPS defaults to, the connection is established and the HTTP protocol is used as specified by the scheme, the resource path /CiscoDevNet is asked for, with a GET method, the web browser adds an Accept Header to the request because an HTML page is what it expects the server to return This is the request, now let’s look at the answer : the github server returns on the same channel a response with the statuts code 200 to tell everything went OK and it writes the JSON contents on the wire Now, we got this HTTP intrinsics, we’re ready to place the call over the wire with POSTMAN. -- ADVANCED DO : open Chrome, go to github, open Dev Toolbar, show what’s happening Several resources are being accessed To different endpoints And different types of Data are being sent and received. That’s the way the Web works, we issue HTTP calls, asking for resources. Then all you need to know to start building calls yourself.
  2. First, let’s start with the methods. We’ve just experienced GET with the Postman calls. The 4 major methods are GET / POST / PUT / DELETE These methods enable HTTP Clients to create / read / update / delete Contents on the Web API Server. Worth mentionning other methods exists : HEAD, PATCH, OPTIONS, though you probably won’t use them during your first interactions with Web APIS.
  3. Remember Web APIs leverage the HTTP protocol. Thanks to this various Status Codes, the server tells about the outcome of the request you just placed. Each status code is composed of 3 digits. The first digit gives you immediate knowledge about the global outcome of the request. 2, 4 and 5 series are the first to know about. 2xx : everything went fine, consider this code as an Acknoledgment, 200 OK generally, 201 on POST calls when a resource has been created, 204 typically happens for a DELETE (nothing to return) 4xx : you place a malformed call, you need to fix something before re-issuing the call Typically, 404 bad URL, 400 malformed request, 401 authentication failed, 403 you’re not allowed to issue this call (authorization) 5xx : it is a server error, there’s nothing YOU can do about it, try again later when the Web API team has fixed the issue, look at the Web API twitter account to see if anything is broken, if not contact the Web API support and get your ticket.
  4. Carrets for list of elements, Braces to describe an element, Contents can also be nested. See how JSON entry ‘s got a name which makes it easy to understand what’s received. Though, the API documentation can help when you’re wondering.
  5. Scope: admin : people_read List users’s activity $ curl -X GET 'https://api.ciscospark.com/v1/people' -H 'Authorization: Bearer XXXXXXXXXXXXX' | jq ".items[] | { email: .emails[0], status: .status }" { "email": "adminspark@chatbot.land", "status": "unknown" } { "email": "ciscodevnet@chatbot.land", "status": "unknown" } { "email": "compliance@chatbot.land", "status": "unknown" } { "email": "user1@chatbot.land", "status": "inactive" } { "email": "user2@chatbot.land", "status": "pending" }
  6. "created": "2018-06-13T12:34:00.354Z", "status": "pending", "invitePending": true, "loginEnabled": false, "type": "person"
  7. eDiscovery Search and extraction - to search and extract information in Cisco Spark spaces. Compliance administrators can: search and extract content using users’ email addresses or space ids. Multiple comma-separated email addresses can be provided as input. The hard limit for the number of email addresses is 200, but the aggregate size of the report is limited to 5GB. provide one or more comma separated keywords of interest when they’re searching. These keywords could be entered by themselves or in combination with an email address or a space id. provide a time window within which they would like to restrict their search. view a list of past reports and download them in JSON format. They can then export the reports into the eDiscovery tool of their choice for legal investigation. The reports are stored for 10 days. The size of the report is limited to 5GB. Flexible Retention Policy Administration - Admin-configurable retention of user-generated content The administrator can set the retention period for data in Cisco Spark. After this period, all content (files, messages, events) will be purged and irretrievable. The minimum retention period is 1 month. The default retention period is indefinite. The retention period can be set in increments of 1 month. The retention policies apply to all spaces in Cisco Spark Events API which provides a manual eDiscovery polling of events via the Events API The Cisco Spark platform exposes Events API. This API can be integrated with DLP software to check for policy violation and take remediation action. Events include posting of messages, files, addition of users to spaces. Remediation action could be alerting the user/admin, deleting the message, etc. The Events API can be consumed by archival software to archive Cisco Spark data and apply legal hold    To help enlist users, the Cisco Spark app has features that enable enlisting users in the process of DLP. Users are informed about space ownership, retention, and the presence of external participants. Message propagation is controlled via message deletion, read receipts, space locks, and moderator inheritance. These advanced compliance features require Pro Pack for Cisco Spark Control Hub.
  8. This is the administrators view in Pro Pack for Cisco Spark Control Hub eDiscovery Search and Extraction require Pro Pack for Cisco Spark Control Hub.
  9. For reports, jq is your friend
  10. data loss prevention (DLP) cloud access security broker (CASB) 
  11. If you have not installed Postman, this is the last call. Go to getpostman.com,
  12. Now let’s place our HTTP request to github.com Leave the GET method as is. Enter the URL of the resource. Press the Send button DO : open POSTMAN, issue the call https://github.com/CiscoDevNet Postman issues the HTTP call on your behalf, and shows the response transmitted by the Github service : statuts of 200 OK if everything went ok If you get 404, the URL is malformed The HTML page contents are placed in the Body Note that the HTML content-type specified by the server is also displayed If you encounter an issue, ask for assistance in the Spark room and sending a Snapshot of your work in Postman may be your best bet to get an hand from the team.
  13. A Postman collection regroups a set of API requests You can save any requests you forge manually into a collection, group several requests and share your collections with Postman If you need to inject dynamic parameters such as API token you can inject them using the {{ variable }} notation. Note that it is also possible to share environments with Postman
  14. A Postman collection regroups a set of API requests You can save any requests you forge manually into a collection, group several requests and share your collections with Postman If you need to inject dynamic parameters such as API token you can inject them using the {{ variable }} notation. Note that it is also possible to share environments with Postman