Hinweis zum Ende des Supports: Am 30. Oktober 2026 AWS wird der Support für Amazon Pinpoint eingestellt. Nach dem 30. Oktober 2026 können Sie nicht mehr auf die Amazon Pinpoint-Konsole oder die Amazon Pinpoint Pinpoint-Ressourcen (Endpunkte, Segmente, Kampagnen, Journeys und Analysen) zugreifen. Weitere Informationen finden Sie unter Ende des Supports von Amazon Pinpoint. Hinweis: APIs In Bezug auf SMS sind Sprach-, Handy-Push-, OTP- und Telefonnummernvalidierung von dieser Änderung nicht betroffen und werden von AWS End User Messaging unterstützt.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
OTP-Codebeispiele für die Verwendung des SDK for Python (Boto3) in Amazon Pinpoint
Dieser Abschnitt enthält Codebeispiele, die zeigen, wie das SDK für Python (Boto3) zum Senden und Überprüfen von OTP-Codes verwendet wird.
Generieren Sie eine Referenz-ID
Die folgende Funktion generiert für jeden Empfänger eine eindeutige Referenz-ID, die auf der Telefonnummer des Empfängers, dem Produkt oder der Marke, für das der Empfänger ein OTP erhält, und der Quelle der Anforderung (dies kann beispielsweise der Name einer Seite auf einer Website oder App sein) basiert. Wenn Sie den OTP-Code verifizieren, müssen Sie eine identische Referenz-ID übergeben, damit die Validierung erfolgreich ist. Sowohl die Beispiele für den Sende- als auch für den Validierungscode verwenden diese Hilfsfunktion.
Diese Funktion ist nicht erforderlich, aber sie ist eine nützliche Methode, um den OTP-Sende- und Verifizierungsprozess auf eine bestimmte Transaktion zu beschränken, sodass diese während des Bestätigungsschritts problemlos erneut eingereicht werden kann. Sie können eine beliebige Referenz-ID verwenden – dies ist nur ein einfaches Beispiel. Die anderen Codebeispiele in diesem Abschnitt basieren jedoch auf dieser Funktion.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 import hashlib def generate_ref_id(destinationNumber,brandName,source): refId = brandName + source + destinationNumber return hashlib.md5(refId.encode()).hexdigest()
OTP-Codes senden
Das folgende Codebeispiel zeigt Ihnen, wie Sie das SDK für Python (Boto3) verwenden, um einen OTP-Code zu senden.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 import boto3 from botocore.exceptions import ClientError from generate_ref_id import generate_ref_id ### Some variables that are unlikely to change from request to request. ### # The AWS Region that you want to use to send the message. region = "us-east-1" # The phone number or short code to send the message from. originationNumber = "+18555550142" # The project/application ID to use when you send the message. appId = "7353f53e6885409fa32d07cedexample" # The number of times the user can unsuccessfully enter the OTP code before it becomes invalid. allowedAttempts = 3 # Function that sends the OTP as an SMS message. def send_otp(destinationNumber,codeLength,validityPeriod,brandName,source,language): client = boto3.client('pinpoint',region_name=region) try: response = client.send_otp_message( ApplicationId=appId, SendOTPMessageRequestParameters={ 'Channel': 'SMS', 'BrandName': brandName, 'CodeLength': codeLength, 'ValidityPeriod': validityPeriod, 'AllowedAttempts': allowedAttempts, 'Language': language, 'OriginationIdentity': originationNumber, 'DestinationIdentity': destinationNumber, 'ReferenceId': generate_ref_id(destinationNumber,brandName,source) } ) except ClientError as e: print(e.response) else: print(response) # Send a message to +14255550142 that contains a 6-digit OTP that is valid for 15 minutes. The # message will include the brand name "ExampleCorp", and the request originated from a part of your # site or application called "CreateAccount". The US English message template should be used to # send the message. send_otp("+14255550142",6,15,"ExampleCorp","CreateAccount","en-US")
OTP-Codes validieren
Das folgende Codebeispiel zeigt Ihnen, wie Sie das SDK für Python (Boto3) verwenden, um einen OTP-Code zu verifizieren, den Sie bereits gesendet haben. Damit der Validierungsschritt erfolgreich ist, muss Ihre Anforderung eine Referenz-ID enthalten, die genau mit der Referenz-ID übereinstimmt, die zum Senden der Nachricht verwendet wurde.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 import boto3 from botocore.exceptions import ClientError from generate_ref_id import generate_ref_id # The AWS Region that you want to use to send the message. region = "us-east-1" # The project/application ID to use when you send the message. appId = "7353f53e6885409fa32d07cedexample" # Function that verifies the OTP code. def verify_otp(destinationNumber,otp,brandName,source): client = boto3.client('pinpoint',region_name=region) try: response = client.verify_otp_message( ApplicationId=appId, VerifyOTPMessageRequestParameters={ 'DestinationIdentity': destinationNumber, 'ReferenceId': generate_ref_id(destinationNumber,brandName,source), 'Otp': otp } ) except ClientError as e: print(e.response) else: print(response) # Verify the OTP 012345, which was sent to +14255550142. The brand name ("ExampleCorp") and the # source name ("CreateAccount") are used to generate the correct reference ID. verify_otp("+14255550142","012345","ExampleCorp","CreateAccount")