Overview
This service provides a SOAP alternative to the RESTful oauth2token
service, and is used to acquire an OAuth 2 Token that can be used by an OAuth 2 Authenticated User of a Client App for access to Projector services. Note that this service should not be provided with a SessionTicket on invocation. Note also that if the response has a non-null value for RedirectUrl
, the service was invoked on the incorrect server and must be re-invoked on the server specified in RedirectUrl
.
...
Element | Data Type | Required? | Default | Description | Sample Data |
---|---|---|---|---|---|
Int32 | No | Click here for more information | |||
String | No | Should be omitted or set to null. | |||
ClientIdentifier | String | Yes | Guid string that identifies the client app requesting a token | 24748faf-e239-d132-167a-6e4d3e1bd0fb | |
ClientSecret | String | Yes | Secret string that client app uses to prove itself | r6tuVhR3ol1BFFVfy3Oe-J8VoH0KpkgLVqAMi-IIgvd_Lr613IEYcXhKAea8eLtQKSIgQ4jHIKhCKQcwriUtgB | |
Code | String | When GrantType="code" | The short-lived authentication code that was provided on the successful redirect of the | E2BgYJjLoNrEY50z-8hLMXevukfd3EWpZcn5RQW6xemGeYelfl_aetMDAA | |
CodeVerifier | String | No | Code Verifier generated by the client app and for which a code challenge was previously sent as part of the | swubMxS7yR-SYjlEwuu5gaS8~bvgL-ngbpZiYFLR_4Vf~u388c.qimhmm6kVc3h3h~TSmhDj02AIPeGcI_Y | |
GrantType | String | Yes | Currently must be either "code" for an initial grant, or "refresh_token" for a token refresh. | ||
RedirectUri | String | When GrantType="code" | Must be identical to the | https://my.app.com/redirect-handler | |
RefreshToken | String | When GrantType="refresh_token" | A valid refresh token that designates a client app connection needing a refresh | E2BgYJjLoNrEY50z-7gMN1evukfd3EWpZcn5RQW6xemGeYelfl_aetMDAA |
...
Panel | ||
---|---|---|
| ||
|
Response Elements
...
Element | Data Type | Description | Sample Data |
---|---|---|---|
Messages | The web service response status and message. Click here for more information. | ||
Int32 | Click here for more information | ||
RequestStatus | Click here for more information | ||
DateTime | Click here for more information | ||
AccessToken | String | Token used for subsequent API access to Projector. In practical terms, this is a SessionTicket. | Af4yzv6CcFKZEh2dz45zZg== |
ExpiresInSeconds | Int32 | How many seconds the | 604800 |
MaxLifetimeMinutes | Int32 | The maximum lifetime of the | 10080 |
RedirectUrl | String | If this is set, this | https://secure2.projectorpsa.com |
RefreshToken | String | The token that can be used to refresh the client app user's access when the Access Token is expired. | E2BgYJjLoNrEY50z-7gMN1evukfd3EWpZcn5RQW6xemGeYelfl_aetMDAA |
RestServiceAuthority | String | The URL that must be used for any restful reporting services invoked with the | https://app2.projectorpsa.com |
SoapServiceAuthority | String | The base URL that must be used for any SOAP services invoked with the | https://secure2.projectorpsa.com |
TimeoutMinutes | Int32 | How long the | 10080 |
TokenType | String |
| projector_session_ticket |
Scope | String | Scope granted to this token, which may be fewer than those requested in the intitial authentication request, but never more. | V:maintainCostCenters U:maintainUsers enterTime |
Response Usage Example(s)
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<PwsAcquireOauth2TokenResponse xmlns="http://projectorpsa.com/PwsProjectorServices/">
<PwsAcquireOauth2TokenResult xmlns:a="http://projectorpsa.com/DataContracts/Responses/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Messages xmlns="http://projectorpsa.com/CommonServices/" xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/"/>
<ResponseId xmlns="http://projectorpsa.com/CommonServices/">0</ResponseId>
<Status xmlns="http://projectorpsa.com/CommonServices/">Ok</Status>
<ServerTimestampUtc xmlns="http://projectorpsa.com/CommonServices/">2021-12-08T15:50:51.1940528Z</ServerTimestampUtc>
<a:AccessToken>Ab2C5oN9uZnVCAOt4STUaA==</a:AccessToken>
<a:ExpiresInSeconds>604800</a:ExpiresInSeconds>
<a:MaxLifetimeMinutes>10080</a:MaxLifetimeMinutes>
<a:RedirectUrl i:nil="true"/>
<a:RefreshToken>ASgA1_8QAAAAIv-lrk_NEdOPhr3ts0Ks2wtyZXZjb3JwLXNnMdXn_IJiutlI</a:RefreshToken>
<a:RestServiceAuthority>http://app2.projectorpsa.com</a:RestServiceAuthority>
<a:SoapServiceAuthority>http://secure2.projectorpsa.com</a:SoapServiceAuthority>
<a:TimeoutMinutes>10080</a:TimeoutMinutes>
<a:TokenType>projector_session_ticket</a:TokenType>
<a:Scope/>
</PwsAcquireOauth2TokenResult>
</PwsAcquireOauth2TokenResponse>
</s:Body>
</s:Envelope> |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<PwsAcquireOauth2TokenResponse xmlns="http://projectorpsa.com/PwsProjectorServices/">
<PwsAcquireOauth2TokenResult xmlns:a="http://projectorpsa.com/DataContracts/Responses/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Messages xmlns="http://projectorpsa.com/CommonServices/" xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/"/>
<ResponseId xmlns="http://projectorpsa.com/CommonServices/">0</ResponseId>
<Status xmlns="http://projectorpsa.com/CommonServices/">Ok</Status>
<ServerTimestampUtc xmlns="http://projectorpsa.com/CommonServices/">2021-12-08T16:07:26.5261911Z</ServerTimestampUtc>
<a:AccessToken i:nil="true"/>
<a:ExpiresInSeconds i:nil="true"/>
<a:MaxLifetimeMinutes i:nil="true"/>
<a:RedirectUrl>https://secure2.projectorpsa.com</a:RedirectUrl>
<a:RefreshToken i:nil="true"/>
<a:RestServiceAuthority i:nil="true"/>
<a:SoapServiceAuthority i:nil="true"/>
<a:TimeoutMinutes i:nil="true"/>
<a:TokenType i:nil="true"/>
<a:Scope i:nil="true"/>
</PwsAcquireOauth2TokenResult>
</PwsAcquireOauth2TokenResponse>
</s:Body>
</s:Envelope> |
PwsAcquireOauth2Token - Common Errors and Warnings
...