createPlatformEndpoint method
Creates an endpoint for a device and mobile app on one of the supported
push notification services, such as GCM (Firebase Cloud Messaging) and
APNS. CreatePlatformEndpoint
requires the
PlatformApplicationArn
that is returned from
CreatePlatformApplication
. You can use the returned
EndpointArn
to send a message to a mobile app or by the
Subscribe
action for subscription to a topic. The
CreatePlatformEndpoint
action is idempotent, so if the
requester already owns an endpoint with the same device token and
attributes, that endpoint's ARN is returned without creating a new
endpoint. For more information, see Using
Amazon SNS Mobile Push Notifications.
When using CreatePlatformEndpoint
with Baidu, two attributes
must be provided: ChannelId and UserId. The token field must also contain
the ChannelId. For more information, see Creating
an Amazon SNS Endpoint for Baidu.
May throw InvalidParameterException. May throw InternalErrorException. May throw AuthorizationErrorException. May throw NotFoundException.
Parameter platformApplicationArn
:
PlatformApplicationArn returned from CreatePlatformApplication is used to
create a an endpoint.
Parameter token
:
Unique identifier created by the notification service for an app on a
device. The specific name for Token will vary, depending on which
notification service is being used. For example, when using APNS as the
notification service, you need the device token. Alternatively, when using
GCM (Firebase Cloud Messaging) or ADM, the device token equivalent is
called the registration ID.
Parameter attributes
:
For a list of attributes, see SetEndpointAttributes.
Parameter customUserData
:
Arbitrary user data to associate with the endpoint. Amazon SNS does not
use this data. The data must be in UTF-8 format and less than 2KB.
Implementation
Future<CreateEndpointResponse> createPlatformEndpoint({
required String platformApplicationArn,
required String token,
Map<String, String>? attributes,
String? customUserData,
}) async {
ArgumentError.checkNotNull(
platformApplicationArn, 'platformApplicationArn');
ArgumentError.checkNotNull(token, 'token');
final $request = <String, dynamic>{};
$request['PlatformApplicationArn'] = platformApplicationArn;
$request['Token'] = token;
attributes?.also((arg) => $request['Attributes'] = arg);
customUserData?.also((arg) => $request['CustomUserData'] = arg);
final $result = await _protocol.send(
$request,
action: 'CreatePlatformEndpoint',
version: '2010-03-31',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
shape: shapes['CreatePlatformEndpointInput'],
shapes: shapes,
resultWrapper: 'CreatePlatformEndpointResult',
);
return CreateEndpointResponse.fromXml($result);
}