createPlatformApplication method
Creates a platform application object for one of the supported push
notification services, such as APNS and GCM (Firebase Cloud Messaging), to
which devices and mobile apps may register. You must specify
PlatformPrincipal and PlatformCredential
attributes when using the CreatePlatformApplication action.
PlatformPrincipal and PlatformCredential are
received from the notification service.
-
For ADM,
PlatformPrincipalisclient idandPlatformCredentialisclient secret. -
For APNS and
APNS_SANDBOXusing certificate credentials,PlatformPrincipalisSSL certificateandPlatformCredentialisprivate key. -
For APNS and
APNS_SANDBOXusing token credentials,PlatformPrincipalissigning key IDandPlatformCredentialissigning key. -
For Baidu,
PlatformPrincipalisAPI keyandPlatformCredentialissecret key. -
For GCM (Firebase Cloud Messaging) using key credentials, there is no
PlatformPrincipal. ThePlatformCredentialisAPI key. -
For GCM (Firebase Cloud Messaging) using token credentials, there is no
PlatformPrincipal. ThePlatformCredentialis a JSON formatted private key file. When using the Amazon Web Services CLI or Amazon Web Services SDKs, the file must be in string format and special characters must be ignored. To format the file correctly, Amazon SNS recommends using the following command:SERVICE_JSON=$(jq @json < service.json). -
For MPNS,
PlatformPrincipalisTLS certificateandPlatformCredentialisprivate key. -
For WNS,
PlatformPrincipalisPackage Security IdentifierandPlatformCredentialissecret key.
PlatformApplicationArn as an
attribute for the CreatePlatformEndpoint action.
May throw AuthorizationErrorException.
May throw InternalErrorException.
May throw InvalidParameterException.
Parameter attributes :
For a list of attributes, see
SetPlatformApplicationAttributes .
Parameter name :
Application names must be made up of only uppercase and lowercase ASCII
letters, numbers, underscores, hyphens, and periods, and must be between 1
and 256 characters long.
Parameter platform :
The following platforms are supported: ADM (Amazon Device Messaging), APNS
(Apple Push Notification Service), APNS_SANDBOX, and GCM (Firebase Cloud
Messaging).
Implementation
Future<CreatePlatformApplicationResponse> createPlatformApplication({
required Map<String, String> attributes,
required String name,
required String platform,
}) async {
final $request = <String, String>{
for (var e1 in attributes.entries.toList().asMap().entries) ...{
'Attributes.entry.${e1.key + 1}.key': e1.value.key,
'Attributes.entry.${e1.key + 1}.value': e1.value.value,
},
'Name': name,
'Platform': platform,
};
final $result = await _protocol.send(
$request,
action: 'CreatePlatformApplication',
version: '2010-03-31',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
resultWrapper: 'CreatePlatformApplicationResult',
);
return CreatePlatformApplicationResponse.fromXml($result);
}