cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
8912
Views
0
Helpful
0
Comments
kasutton
Cisco Employee
Cisco Employee

Greetings, Cisco WebEx Integrators!

A security update originally communicated in mid-2014 (released via email communication to account contacts and posted on DevNet) has recently been made mandatory (see #4 here for contents of the communication: https://support.webex.com/LocalizedUpgrades/WBS29-7/Security_Enforcement_Developer_Notification.pdf). Part of this enhancement is to require that password and partner ID values are sent via a more secure HTTPS POST method. POST method passes variables as part of the HTTPS body, rather than as part of the URL string.

If you’re using HTML, the following HTTPS POST method will log a host in:

<form action=“https://SITENAME.webex.com/SITENAME/p.php” method=“POST”>

<input type=“hidden” name=“AT” value=“LI”>

<input type=“hidden” name=“WID” value=“USERNAME”>

<input type=“hidden” name=“PW” value=“PASSWORD”>

<input type=“submit”>

</form>

To join a meeting:

<form action=“https://SITENAME.webex.com/SITENAME/m.php” method=“POST”>

<input type=“hidden” name=“AT” value=“JM”>

<input type=“hidden” name=“MK” value=“MEETING_NUMBER”>

<input type=“hidden” name=“AN” value=“ATTENDEE_NAME”>

<input type=“hidden” name=“AE” value=“ATTENDEE_EMAIL”>

<input type=“hidden” name=“PW” value=“MEETING_PASSWORD”>

<input type=“submit”>

</form>

As an alternative, if you use the XML API, you can:

1.  For login, call GetloginurlUser (https://developer.cisco.com/site/webex-developer/develop-test/xml-api/xml-api-reference/#getloginurluser) or GetloginTicket (https://developer.cisco.com/site/webex-developer/develop-test/xml-api/xml-api-reference/#getloginticket).

GetLoginTicket

This API will return a <ticket> value which can be used in place of the users password in our URL API login request (TK instead of PW).The ticket value can only be used once, so you will need to call this XML API for each attempt to authenticate via URL API.  This method will allow you to continue to use HTTP GET as there is no password included in the request.

Usage (note PW is not included, as TK replaces PW):

https://SITENAME.webex.com/SITENAME/p.php?AT=LI&WID=HOST_USERNAME&TK=4cefaf3f1e12ece3f0bc26354f0481aae8835c196528c480bb485e5ac0d4d793

Request:

<?xml version="1.0" encoding="UTF-8"?>

<serv:messagexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <header>

        <securityContext>

            <webExID>HOST_USERNAME</webExID>

            <password>PASSWORD</password>

            <siteName>SITENAME</siteName>

        </securityContext>

    </header>

    <body>

        <bodyContent xsi:type="java:com.webex.service.binding.user.GetLoginTicket"></bodyContent>

    </body>

</serv:message>

Response:

<serv:message>

    <serv:header>

        <serv:response>

            <serv:result>SUCCESS</serv:result>

            <serv:gsbStatus>PRIMARY</serv:gsbStatus>

        </serv:response>

    </serv:header>

    <serv:body>

        <serv:bodyContentxsi:type="use:getLoginTicketResponse">

            <use:ticket>4cefaf3f1e12ece3f0bc26354f0481aae8835c196528c480bb485e5ac0d4d793</use:ticket>

            <use:apiVersion>WebEx XML API V9.0.0</use:apiVersion>

        </serv:bodyContent>

    </serv:body>

</serv:message>

GetloginurlUser

This API is very similar to GetLoginTicket, accept that it will generate the complete Login URL including the single use authentication ticket.   It will end with the BackURL URL API argument (BU=) so that you can redirect to a specific page after authenticating, or append additional subsequence URL API requests.

Example of returned value :

https://SITENAME.webex.com/SITENAME/p.php?AT=LI&FN=FIRSTNAME&LN=LASTNAME&EM=hostEmail@example.com&WID=HOST_USERNAME&TK=123454321012ece3f0bc26354f0481aae8835c196528c480bb485e5ac0d4d793&MU=GoBack&BU=ex.com/SITENAME/p.php?AT=LI&FN=FIRSTNAME&LN=LASTNAME&EM=hostEmail@example.com&WID=HOST_USERNAME&TK=123454321012ece3f0bc26354f0481aae8835c196528c480bb485e5ac0d4d793&MU=GoBack&BU=

Request:

<?xml version="1.0" encoding="UTF-8"?>

<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <header>

        <securityContext>

            <webExID>HOST_USERNAME</webExID>

            <password>PASSWORD</password>

            <siteName>SITENAME</siteName>

        </securityContext>

    </header>

    <body>

        <bodyContent xsi:type="java:com.webex.service.binding.user.GetloginurlUser">

            <webExID>HOST_USERNAME</webExID>

        </bodyContent>

    </body>

</serv:message>

Response:

<serv:message>

    <serv:header>

        <serv:response>

            <serv:result>SUCCESS</serv:result>

            <serv:gsbStatus>PRIMARY</serv:gsbStatus>

        </serv:response>

    </serv:header>

    <serv:body>

        <serv:bodyContent xsi:type="use:getloginurlUserResponse">

            <use:userLoginURL>https://SITENAME.webex.com/SITENAME/p.php?AT=LI&FN=FIRSTNAME&LN=LASTNAME&EM=hostEmail@example.com&WID=HOST_USERNAME&TK=123454321012ece3f0bc26354f0481aae8835c196528c480bb485e5ac0d4d793&MU=GoBack&BU=ex.com/SITENAME/p.php?AT=LI&FN=FIRSTNAME&LN=LASTNAME&EM=hostEmail@example.com&WID=HOST_USERNAME&TK=123454321012ece3f0bc26354f0481aae8835c196528c480bb485e5ac0d4d793&MU=GoBack&BU=</use:userLoginURL>

        </serv:bodyContent>

    </serv:body>

</serv:message>

2.  For joining and starting meetings, GethosturlMeeting (https://developer.cisco.com/site/webex-developer/develop-test/xml-api/xml-api-reference/#gethosturlmeeting) and GetjoinurlMeeting (https://developer.cisco.com/site/webex-developer/develop-test/xml-api/xml-api-reference/#getjoinurlmeeting) will return a meeting’s respective attendee and host join URLs.

GethosturlMeeting

This API is similar to GetloginurlUser, but goes one step further by automatically appending the Host Meeting URL API to the end of the Login URL.  The returned URL is still using a single-use authentication ticket in place of the password, so you will need to use this XML API request any time the user is attempting to start a meeting (even if its the same session being started again).

Example of returned value :

https://SITENAME.webex.com/SITENAME/p.php?AT=LI&WID=HOST_USERNAME&TK=4c3jd4dsak23noi23nvo4vemow4n2uincwe2433tnv345oyunmalm44oufdy224m&MU=https%3A%2F%2Fsitename.webex.com%2Fsitename%2Fm.php%3FAT%3DHM%26MK%3D111222333%26Rnd%3D0.35268691362794014

Request:

<?xml version="1.0" encoding="UTF-8"?>

<serv:messagexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <header>

        <securityContext>

            <webExID>HOST_USERNAME</webExID>

            <password>PASSWORD</password>

            <siteName>SITENAME</siteName>

        </securityContext>

    </header>

    <body>

        <bodyContent xsi:type="java:com.webex.service.binding.meeting.GethosturlMeeting">

            <sessionKey>SESSION_NUMBER_OR_MEETING_NUMBER</sessionKey>

        </bodyContent>

    </body>

</serv:message>

Response:

<serv:message>

    <serv:header>

        <serv:response>

            <serv:result>SUCCESS</serv:result>

            <serv:gsbStatus>PRIMARY</serv:gsbStatus>

        </serv:response>

    </serv:header>

    <serv:body>

        <serv:bodyContentxsi:type="meet:gethosturlMeetingResponse">

            <meet:hostMeetingURL>https://SITENAME.webex.com/SITENAME/p.php?AT=LI&WID=USERNAME&TK=4c3jd4dsak23noi23nvo4vemow4n2uincwe2433tnv345oyunmalm44oufdy224m&MU=https%3A%2F%2Fapidemoeu.webex.com%2Fapidemoeu%2Fm.php%3FAT%3DHM%26MK%3D111222333%26Rnd%3D0.35268691362794014</meet:hostMeetingURL>

        </serv:bodyContent>

    </serv:body>

</serv:message>

GetjoinurlMeeting

This API request will return a WebEx generated Join Meeting URL API (joinMeetingURL).  The response may also include an (inviteMeetingURL) which can be used by mobile or PC users to join the meeting.   While joinMeetingURL url value will put the attendee directly into the meeting, the inviteMeetingURL value will bring the user to the WebEx site or mobile client and require them to manually enter their information and click the join button.  The URL’s returned by this XML API are not single use, and can be used multiple times but are still specific to the individual participant so you will need to request this URL for each participant separately.

Request:

<?xml version="1.0" encoding="UTF-8"?>

<serv:messagexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <header>

        <securityContext>

            <webExID>HOST_USERNAME</webExID>

            <password>PASSWORD</password>

            <siteName>SITENAME</siteName>

        </securityContext>

    </header>

    <body>

        <bodyContent xsi:type="java:com.webex.service.binding.meeting.GetjoinurlMeeting">

            <sessionKey>SESSION_NUMBER_OR_MEETING_NUMBER</sessionKey>

            <attendeeName>PARTICIPANT NAME</attendeeName>

            <attendeeEmail>participant@example.com</attendeeEmail>

            <meetingPW>MEETING_PASSWORD</meetingPW>

        </bodyContent>

    </body>

</serv:message>

Response:

<serv:message>

    <serv:header>

        <serv:response>

            <serv:result>SUCCESS</serv:result>

            <serv:gsbStatus>PRIMARY</serv:gsbStatus>

        </serv:response>

    </serv:header>

    <serv:body>

        <serv:bodyContentxsi:type="meet:getjoinurlMeetingResponse">

            <meet:joinMeetingURL>https://SITENAME.webex.com/SITENAME/m.php?MTID=12345432107b83698a01388003caa9374</meet:joinMeetingURL>

            <meet:inviteMeetingURL>https://SITENAME.webex.com/SITENAME/j.php?ED=444555666&UID=0&RT=MxMxMQ%3D%3D</meet:inviteMeetingURL>

        </serv:bodyContent>

    </serv:body>

</serv:message>

Feel free to discuss on the forums!

Kasey

Cisco WebEx API Developer Support

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: