OTPCodebeispiele für die Verwendung SDK für Python (Boto3) in Amazon Pinpoint - Amazon Pinpoint

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.

OTPCodebeispiele für die Verwendung SDK für Python (Boto3) in Amazon Pinpoint

Dieser Abschnitt enthält Codebeispiele, die zeigen, wie Sie SDK for Python (Boto3) zum Senden und Überprüfen OTP von Codes verwenden.

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, OTP für die der Empfänger eine Nachricht erhält, und der Quelle der Anfrage (die beispielsweise der Name einer Seite auf einer Website oder App sein kann) basiert. Wenn Sie den OTP Code verifizieren, müssen Sie eine identische Referenz-ID übergeben, damit die Überprüfung 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 Versand- und Überprüfungsprozess 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()

Codes senden OTP

Das folgende Codebeispiel zeigt Ihnen, wie Sie SDK for 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")

Codes validieren OTP

Das folgende Codebeispiel zeigt Ihnen, wie Sie SDK for 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")