web-dev-qa-db-ja.com

無効なパラメーター:トークン理由:iOSデバイストークンは400文字以下である必要があります

コンソールからAmazon snsにプラットフォームエンドポイントを作成しようとしています。以下は、FCM/APNsから受け取ったデバイストークンです。

fUG5dIcN_pA:APA91bEciRwWuvTIezAKcJ5y1xz5z6BygE3YJkywdCGCFJD93NTfjARwPRommwgsfvVo2iH_qZWT7D2Lxnc69uanato1UUq-nLl5R1L0qF4exT7zjM9Wdy9Evs6h-EOBtIVv7Vv8bPE1

エラーが発生します:iOSデバイストークンは400桁以下の16進文字である必要があります。APNが文字列形式でトークンを送信し、Amazonが16進文字でトークンを送信しているようです。

13
narendra

didRegisterForRemoteNotificationsWithDeviceTokenで以下のコードを試してください。

let deviceToken = deviceToken.map {String(format:"%02.2hhx",$0)}.joined()
print(deviceToken)

そして、AmazonSNSコンソールにデバイストークンを貼り付けます。これで機能します。

5
Surya

Objective-cの場合、これを使用できます。

NSString * deviceTokenString = [[[[deviceToken description]
                         stringByReplacingOccurrencesOfString: @"<" withString: @""] 
                        stringByReplacingOccurrencesOfString: @">" withString: @""] 
                       stringByReplacingOccurrencesOfString: @" " withString: @""];

NSLog(@"The generated device token string is : %@",deviceTokenString);
1
DionizB

iOS 13の後にこのエラーが発生しました。 iOS 13以降、アプリデリゲートを介して提供されるトークンが変更され、iOS 13のデリゲートコードが更新されない場合、無効なトークンが送信されます。

更新方法の例については、このスタックオーバーフローリンクを確認してください ここ

0
David Rees