Managing App Registrations¶
Create Application Connection¶
Create an application connection and initially set the application connection settings.
Usage for Create Application Connection¶
All application connection settings are optional, the minimal body contains no properties at all. Mobile platform populates default values as needed.
Request for Create Application Connection¶
URL: https://<mobile services host>/odata/applications/<service version>/<appid>/Connections
HTTP Method: POST
Request Parameters:
Parameter | Type | Description |
---|---|---|
<appid> |
Mandatory | ID that uniquely identifies an application> If an application is configured for anonymous access in the cockpit, the registration is successful even if there are no credentials, or incorrect ones, in the authorization header. |
<host:port> |
Mandatory | Host name should match the domain registered with mobile platform. If the requested domain name does not match, a default domain is used. |
<service version> |
Mandatory | Version 1 and later. |
Request Body Example:
<?xml version='1.0' encoding='utf-8'?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<title type="text"/>
<updated>2014-061-15T02:23:29Z</updated>
<author>
<name/>
</author>
<category term="applications.Connection" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
<content type="application/xml">
<m:properties>
<d:DeviceType>iPhone</d:DeviceType>
<d:DeviceModel m:null="true" />
<d:ApnsDeviceToken m:null="false">18AA4813FB9E6393065BFEDADCDD68173782A42599F3C9E2BF14F990F2D9F096</d:ApnsDeviceToken>
</m:properties>
</content>
</entry>
Response for Create Application Connection¶
Code | Description |
---|---|
201 Created | New application connection settings are included in the response body. |
Create Application Connection With Capability Handling¶
Starting with SAP Mobile Services version 1.3 of the connection service, clients can manage form factors and capabilities in the application connections.
During registration, the device sends its form factor (such as smartphone or tablet), and the client can send a certain
capability name [such as purchaseOrder-display
, or a wildcard (*
) in case the device has all the capabilities]. When
the device user adds or removes a capability, the application connection is updated.
Application Connection Properties¶
Describes application connection properties, and indicates whether the properties are read-only or nullable from the HTTP client.
Note
If you attempt to modify a read-only property, the client application throws the following exception: HTTP 403 - The property "XXX" cannot be updated by a client application.
Onboarding Version 1 or Later¶
Application Connection Properties: Uncategorized
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
ETag |
Specifies the version identifier. | String | Yes | No |
ApplicationConnectionId |
ID that uniquely identifies an application. Usually generated by the server and in the format of a GUID. | String | Yes | No |
Application Connection Properties: Android Push
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
AndroidGcmPushEnabled |
Indicates if Firebase Cloud Messaging (FCM) push notifications are enabled and configured for this application. | Boolean | No | No |
AndroidGcmRegistrationId |
The registration ID that the device acquires from Google during FCM registration. | String | No | Yes |
AndroidGcmSenderId |
FCM sender ID used by mobile services to send notifications. Used by the client to register for FCM. | String | Yes | Yes |
Application Connection Properties: Apple Push
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
ApnsPushEnable |
Indicates if push notification using APNS is enabled or not. | Boolean | No | No |
ApnsDeviceToken |
The Apple push notification service token. | String | No | Yes |
Application Connection Properties: Application Settings
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
CustomizationBundleId |
The application configuration (customization resource bundles) associated with the application. | String | Yes | Yes |
ApplicationVersion |
The version number of the registered application. | String | No | Yes |
ClientSdkVersion |
The version number of the SDK for the registered application. | String | No | Yes |
Application Connection Properties: BlackBerry Push
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
BlackberryPushEnabled |
Indicates if BlackBerry push notifications are enabled and configured for this application. | Boolean | No | No |
BlackberryDevicePin |
Every Blackberry device has a unique permanent PIN. During initial connection and settings exchange, the device sends this information to the server. | String | No | Yes |
BlackberryBESListenerPort |
The listener port for BES notifications. | Int32 | No | No |
Application Connection Properties: Windows Push
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
WnsChannelURI |
The WNS Channel URI as provided by WNS during push registration. | String | No | Yes |
WnsPushEnable |
Indicates if push notification using WNS is enabled or not. | Boolean | No | No |
Application Connection Properties: MPNS Push
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
MpnsChannelURI |
The MPNS Channel URI as provided by MPNS during push registration. | String | No | Yes |
MpnsPushEnable |
Indicates if push notification using MPNS is enabled or not. | Boolean | No | No |
Application Connection Properties: Capabilities
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
CapabilitiesPasswordPolicy |
Updates the password policy for an application connection. | Boolean | No | No |
Application Connection Properties: Custom Settings
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
CustomCustom1 |
Available for free use. | String | No | Yes |
CustomCustom2 |
Available for free use. | String | No | Yes |
CustomCustom3 |
Available for free use. | String | No | Yes |
CustomCustom4 |
Available for free use. | String | No | Yes |
Application Connection Properties: Device Information
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
DeviceModel |
The manufacturer of the registered mobile device. | String | No | Yes |
DeviceType |
The type of device. Supported device types are: WinMobile, WinSmartPhone, Windows, iPhone, iPad, iPod, iOS, BlackBerry, Android, Rim6, Windows8, WinPhone8, Windows81, WinPhone81. | String | No | Yes |
DeviceSubType |
The device subtype of the device. | String | No | Yes |
DevicePhoneNumber |
The phone number associated with the registered mobile device. This phone number is used when sending SMS text messages to a device. The phone number must be provided in international format, e.g. “+491712345678” or “+15551231234”. | String | No | Yes |
DeviceIMSI |
The International Mobile Subscriber identity, which is a unique number associated with all Global System for Mobile communication (GSM) and Universal Mobile Telecommunications System (UMTS) network mobile phone users. | String | No | Yes |
Application Connection Properties: Password Policy
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
PasswordPolicyEnabled |
Specifies whether password policies are enabled. | Boolean | Yes | No |
PasswordPolicyDefaultPasswordAllowed |
Specifies whether default passwords are allowed. | Boolean | Yes | No |
PasswordPolicyMinLength |
Specifies how long the password chosen by the user must be. | Int32 | Yes | No |
PasswordPolicyDigitRequired |
Specifies whether the password must contain digit(s). | Boolean | Yes | No |
PasswordPolicyUpperRequired |
Specifies whether the password must contain uppercase characters. | Boolean | Yes | No |
PasswordPolicyLowerRequired |
Specifies whether the password must contain lowercase characters. | Boolean | Yes | No |
PasswordPolicySpecialRequired |
Specifies whether the password must contain non-alphanumeric characters. | Boolean | Yes | No |
PasswordPolicyExpiresInNDays |
Specifies the number of days the existing password can be used before it must be changed by the user. | Int32 | Yes | No |
PasswordPolicyMinUniqueChars |
Determines how many unique characters must be used in the password. | Int32 | Yes | No |
PasswordPolicyLockTimeout |
Determines how long a successfully unlocked data vault will remain open. When the timeout expires, the vault is locked, and the user must re-enter the vault password to resume using the application. | Int32 | Yes | No |
PasswordPolicyRetryLimit |
Determines how long a successfully unlocked data vault will remain open. When the timeout expires, the vault is locked, and the user must re-enter the vault password to resume using the application. | Int32 | Yes | No |
Application Connection Properties: Proxy
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
ProxyApplicationEndpoint |
The URL pointing to the EIS. | String | Yes | Yes |
ProxyPushEndpoint |
The SAP Mobile Platform URL for sending out notifications. | String | Yes | Yes |
Application Connection Properties: Usage
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
MaxConnectionWaitTimeForClientUsage |
Determines how long a connection exists for client usage. | Int32 | Yes | Yes |
EnableAppSpecificClientUsageKeys |
Determines if the application developer can use custom information in Usage Data Collection. | Boolean | Yes | Yes |
Application Connection Properties: Log
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
UploadLogs |
Specifies whether log upload is enabled for this app and device registration. | Boolean | Yes | Yes |
LogEntryExpiry |
Specifies the maximum time the logs would be kept on the device before they get removed. | Int32 | Yes | Yes |
Application Connection Properties
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
E2ETraceLevel |
The log level to be used for End 2 End traces. | String | Yes | Yes |
PublishedToMobilePlace |
Determines if the configuration is currently shared through mobile place or not. | Boolean | Yes | Yes |
FeatureVectorPolicyAllEnabled |
Determines if the hybrid capability policy is enabled or not. If enabled then the administrator can select which features to allow to work per application. If disabled all features will work. | Boolean | Yes | Yes |
Onboarding Version 3 or Later¶
Application Connection Properties: Capability
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
Category |
The capability category. | String | Yes | No |
CapabilityName |
Name of the capability. | String | Yes | No |
ApplicationConnectionId |
ID that uniquely identifies an application. | String | Yes | No |
CapabilityValue |
Value of the capability. | String | Yes | Yes |
Application Connection Property: Form
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
FormFactor |
The form factor of the device. Mostly used in combination with Capability based push. | String | Yes | No |
Onboarding Version 4 or Later¶
Application Connection Property: UserName
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
UserName |
Specifies the user name that was used during registration | String | Yes | No |
Application Connection Property: Application Settings
Property Name | Description | Type | Read-only? | Is Nullable? |
---|---|---|---|---|
UserLocale |
Specifies the users preferred language. | String | No | Yes |
TimeZone |
Specifies the time zone. | String | No | Yes |
LastKnownLocation |
Specifies last known location of the app sent to the server. | String | No | Yes |
CreatedAt |
Indicates the time the application was created. | DateTime | Yes | No |
PushGroup |
Custom field to specify a target audience for push information. | String | No | Yes |
Email |
Users email address. | String | No | Yes |
Manage Application Settings¶
Application settings describe the application connection details such as application ID, security configuration, and customization resource.
Get Application Settings¶
Retrieve application settings for the application connection.
Usage for Get Application Settings¶
You can retrieve application settings by either explicitly specifying the application connection ID, or by having the
application connection ID determined from the call context (that is, from either the X-SMP-APPCID
cookie or X-SMP-APPCID
HTTP header, if specified). On the first call, you can simplify your client application code by having the application
connection ID determined from the call context.
Request for Get Application Settings¶
URL: https://<mobile services host>/odata/applications/<service version>/<appid>/Connections(‘<appcid>’)
HTTP Method: GET
Request Parameters:
Parameter | Type | Description |
---|---|---|
<appid> |
Mandatory | ID that uniquely identifies an application |
<appcid> |
Mandatory | The connection ID of the application instance interacting with the service |
<service version> |
Mandatory | Version 1 and later |
<user_name> |
Optional (read-only) | Version 4 and later |
Request Header Example:
GET /odata/applications/v1/com.sap.myapp/Connections('b6d50e93-bcaa-439d-9741-660a3cb56771') HTTP/1.1
Cookie: X-SMP-APPCID=<XXXX>; X-SMP-SESSID=<XXXX>
Host: smpserver:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.3 (java 1.5)
Authorization: Basic <XXXX>
Response for Get Application Settings¶
Code | Description |
---|---|
200 OK | Returns service document |
Response Body Example:
<?xml version="1.0" encoding="UTF-8"?>
<entry xml:base="http://10.53.138.170:8080/odata/applications/latest/G3T/"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<id>http://10.53.138.170:8080/odata/applications/latest/G3T/Connections<XXXX></id>
<title type="text"/>
<category scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" term="applications.Connection"/>
<content type="application/xml">
<m:properties>
<d:ETag>2013-11-07 14:44:43.0</d:ETag><d:ApplicationConnectionId>xxxx</d:ApplicationConnectionId>
<d:AndroidGcmPushEnabled m:type="Edm.Boolean">false</d:AndroidGcmPushEnabled>
<d:AndroidGcmRegistrationId m:null="true"/><d:AndroidGcmSenderId/>
<d:ApnsPushEnable m:type="Edm.Boolean">true</d:ApnsPushEnable>
<d:ApnsDeviceToken m:null="true"/>
<d:MpnsPushEnable m:type="Edm.Boolean">true</d:MpnsPushEnable>
<d:ProxyApplicationEndpoint>http://vmw3815.wdf.sap.corp:50009/sap/opu/sdata/iwfnd/RMTSAMPLEFLIGHT/</d:ProxyApplicationEndpoint>
<d:ProxyPushEndpoint>http://INLC50802847A:8080/Notification</d:ProxyPushEndpoint>
<d:UploadLogs>false</d:UploadLogs>
<d:WnsChannelURI m:null="true"/>
<d:WnsPushEnable m:type="Edm.Boolean">false</d:WnsPushEnable>
</m:properties>
</content>
</entry>
Get Application Property Settings¶
Get the specific property value for a property from the application settings.
Request for Get Application Property Settings¶
URL: https://<mobile services host>/odata/applications/<service version>/<appid>/Connections(‘<registrationID>’)/<property-name>
HTTP Method: GET
Request Parameters:
Parameter | Type | Description |
---|---|---|
<appid> |
Mandatory | ID that uniquely identifies an application |
<registrationID> |
Mandatory | The registration ID of the application instance that is interacting with the service |
<property-name> |
Mandatory | The property name can be appended to the URL to retrieve the value of a specific property |
<service version> |
Mandatory | Version 1 and later |
Request Header Example:
GET /odata/applications/v1/com.sap.myapp/Connections('b6d50e93-bcaa-439d-9741-660a3cb56771')/DeviceType HTTP/1.1
Cookie: X-SMP-APPCID=b6d50e93-bcaa-439d-9741-660a3cb56771; X-SMP-SESSID=97ts80gwhxkc
Host: smpserver:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.3 (java 1.5)
Authorization: Basic REVWMDAwMTppbml0aWFs
Response for Get Application Property Settings¶
Code | Description |
---|---|
200 OK | Returns service document |
Update Application Settings¶
Update the application settings with the properties in the request.
Usage Information
Condition | For Service Versions | Use HTTP Operation | Properties |
---|---|---|---|
To replace an entity | Version 1 and later | PUT |
Add complete entity in the payload |
To patch individual property within an entity | Version 1 and later | POST |
Add header X-HTTP-METHOD: MERGE`` and enter the properties to patch in the payload |
Version 1 and later | PATCH |
Enter the properties to patch in the payload |
Request for Update Application Settings¶
URL: https://<mobile services host>/[public/]odata/applications/<service version>/<appid>/Connections(‘<registrationID>':<Version>]
HTTP Method: PUT
Request Parameters:
Parameter | Type | Description |
---|---|---|
<appid> |
Mandatory | The application ID that uniquely identifies the application |
<registrationID> |
Mandatory | The registrationID of the application instance that is interacting with the service |
<service version> |
Mandatory | Version 1 and later |
Request Header Example:
PUT /odata/applications/v1/com.sap.myapp/Connections('<XXXX>') HTTP/1.1
Cookie: X-SMP-APPCID=<XXXX>; X-SMP-SESSID=<XXXX>
Content-Length: 4744
Content-Type: application/atom+xml; charset=UTF-8
Host: smpserver:8080
Authorization: Basic <XXXX>
Response for Update Application Settings¶
Code | Description |
---|---|
200 | No application connection entity |
404 | Not explicitly registered the client |
Delete Application Connection¶
Delete an application connection.
Request for Delete Application Connection¶
URL: https://<mobile services host>/odata/applications/<service version>/<appid>/Connections(‘<appcid>’)
HTTP Method: HTTP DELETE
Request Parameters:
Parameter | Type | Description |
---|---|---|
<appid> |
Mandatory | ID that uniquely identifies an application |
<appcid> |
Mandatory | The connection ID of the application instance interacting with the service |
<service version> |
Mandatory | Version 1 and later |
Request Header Example:
DELETE /odata/applications/v1/com.sap.myapp/Connections('b6d50e93-bcaa-439d-9741-660a3cb56771') HTTP/1.1
Cookie: X-SMP-APPCID=<XXXX>
Host: smpserver:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.3 (java 1.5)
Authorization: Basic <XXXX>
Response for Delete Application Connection¶
Code | Description |
---|---|
200 OK | Returns service document |
404 | Explicitly not registered client |
Revoke User Token¶
Revoke all tokens registered to a specific user for an application, from the back-end server.
Request for Revoke User Token¶
URL: [<application-service-host>/mobileservices/service-key/odata/applications/user/<user-name>/updateRevokeTime|<application-service-host>/mobileservices/service-key/odata/applications/user/<user-name>/updateRevokeTime
]
HTTP Method: HTTP PATCH
Request Parameters:
Parameter | Type | Description |
---|---|---|
<application-service-host> |
Mandatory | The server that hosts the application. |
<user-name> |
Mandatory | The specific user name or identifier for which you want to revoke tokens. |
HTTP Header: X-API-Key = {service key}
Service key format example: 7d5e81512b5c6f371113a73d395913e7ba8732440ac0a1f1f81833ff1dea53a5
To create a service key, see Service Keys.
1 2 3 |
|
Response for Revoke User Token¶
Code | Description |
---|---|
200 | Revoke specific user token success |
404 | Not found specific user registration |
500 | Server internal error |