Test ortamında OTPMOCK_URL=https://api.otpmock.com tanımlayın, AWS End User Messaging istemcisini bu adrese yönlendirin ve AWS End User Messaging kimlik bilgisi olarak otpmock API anahtarınızı kullanın. Uygulama kodunuz değişmez; canlı ortam AWS End User Messaging ile göndermeye devam eder.
Kurulum
Her AWS SDK istemcisi özel bir endpoint kabul eder. Bu, AWS'nin SNS üzerinden SMS göndermenin yerini alan daha yeni SMS servisidir.
import { PinpointSMSVoiceV2Client } from "@aws-sdk/client-pinpoint-sms-voice-v2";
export const sms = new PinpointSMSVoiceV2Client({
region: process.env.AWS_REGION ?? "us-east-1",
...(process.env.OTPMOCK_URL && {
endpoint: process.env.OTPMOCK_URL,
credentials: { accessKeyId: process.env.OTPMOCK_API_KEY, secretAccessKey: "unused" },
}),
});import os
import boto3
sms = boto3.client(
"pinpoint-sms-voice-v2",
region_name=os.environ.get("AWS_REGION", "us-east-1"),
endpoint_url=os.environ.get("OTPMOCK_URL"), # None in production
)
# In tests, set AWS_ACCESS_KEY_ID to your otpmock API key (any secret works).import java.net.URI;
import software.amazon.awssdk.services.pinpointsmsvoicev2.PinpointSmsVoiceV2Client;
String otpmock = System.getenv("OTPMOCK_URL");
var builder = PinpointSmsVoiceV2Client.builder();
if (otpmock != null) builder.endpointOverride(URI.create(otpmock));
PinpointSmsVoiceV2Client sms = builder.build();
// In tests, set AWS_ACCESS_KEY_ID to your otpmock API key (any secret works).using Amazon.PinpointSMSVoiceV2;
var otpmock = Environment.GetEnvironmentVariable("OTPMOCK_URL");
var config = new AmazonPinpointSMSVoiceV2Config();
if (otpmock is not null) { config.ServiceURL = otpmock; config.AuthenticationRegion = "us-east-1"; }
var sms = new AmazonPinpointSMSVoiceV2Client(config);
// In tests, set AWS_ACCESS_KEY_ID to your otpmock API key (any secret works).use Aws\PinpointSMSVoiceV2\PinpointSMSVoiceV2Client;
$otpmock = getenv('OTPMOCK_URL');
$sms = new PinpointSMSVoiceV2Client(array_filter([
'region' => getenv('AWS_REGION') ?: 'us-east-1',
'version' => 'latest',
'endpoint' => $otpmock ?: null,
]));
// In tests, set AWS_ACCESS_KEY_ID to your otpmock API key (any secret works).require "aws-sdk-pinpointsmsvoicev2"
sms = Aws::PinpointSMSVoiceV2::Client.new(
region: ENV.fetch("AWS_REGION", "us-east-1"),
**(ENV["OTPMOCK_URL"] ? { endpoint: ENV["OTPMOCK_URL"] } : {})
)
# In tests, set AWS_ACCESS_KEY_ID to your otpmock API key (any secret works).cfg, err := config.LoadDefaultConfig(ctx) // in tests, AWS_ACCESS_KEY_ID = otpmock API key (any secret works)
if err != nil {
return err
}
client := pinpointsmsvoicev2.NewFromConfig(cfg, func(o *pinpointsmsvoicev2.Options) {
if base := os.Getenv("OTPMOCK_URL"); base != "" {
o.BaseEndpoint = aws.String(base)
}
})Her dil, CI'da sağlayıcının resmi SDK'sıyla (ya da başka bir adrese yönlendirilemeyen SDK'larda düz HTTP API'siyle) otpmock'a karşı sınanır.
Kimlik bilgisi. Test ortamında otpmock API anahtarınızı erişim anahtarı kimliği olarak kullanın. Gizli erişim anahtarı herhangi bir değer olabilir; SigV4 imzası denetlenmez.
otpmock neyi taklit ediyor?
| Uç nokta | Ne yapar |
|---|---|
POST / (X-Amz-Target: PinpointSMSVoiceV2.SendTextMessage) | awsJson1_0 protokolü, MessageId döner |
Yanıtlar ve hatalar AWS End User Messaging API'sinin kendi biçimindedir, bu yüzden istemci kütüphanesi onları her zamanki gibi çözümler. Yanlış anahtar ve aylık hakkın dolması da aynı hata biçimiyle döner.
Telefon numaraları
E.164 biçiminde (+15550142) gönderin.
Testinizde kodu okuyun
const telefon = otp.randomPhone(); // her test için ayrı numara
const since = Date.now() - 5_000;
await page.getByRole("button", { name: "Kod gönder" }).click(); // uygulamanız AWS End User Messaging API'sini çağırır
const { code } = await otp.waitForCode(telefon, { since });otp yardımcısı bağımlılığı olmayan tek bir dosyadır: dokümandan alın (İngilizce). Baştan sona örnekler: Playwright ve Cypress rehberleri (İngilizce).
Bilmeniz gerekenler
- Yalnızca
SendTextMessagetaklit edilir. Hedef numara doğrulama işlemleri, önceden kayıtlı bir numara kaydı gerektirdiği için taklit edilmez.
Sık sorulanlar
otpmock AWS End User Messaging üzerinden gerçek SMS gönderiyor mu?
Hayır. Test ortamında uygulamanızın AWS End User Messaging istekleri otpmock'a gider; mesaj 10 dakika saklanır ve AWS End User Messaging ya da herhangi bir operatör ağına hiç ulaşmaz. Canlı ortamınız AWS End User Messaging kullanmaya devam eder, çünkü otpmock yalnızca OTPMOCK_URL tanımlıyken devreye girer.
Resmi @aws-sdk/client-pinpoint-sms-voice-v2 SDK'sı destekleniyor mu?
Evet. AWS End User Messaging uç noktaları, resmi @aws-sdk/client-pinpoint-sms-voice-v2 paketiyle Node.js'te uçtan uca sınanır. Adres değiştirmeye izin veren başka dillerdeki istemciler de çalışır.
otpmock hangi AWS End User Messaging API'lerini destekliyor?
POST / (X-Amz-Target: PinpointSMSVoiceV2.SendTextMessage) (awsJson1_0 protokolü, MessageId döner).
Ücretsiz plan ayda 300 mesaj içerir, kart gerekmez. Yapay zeka kodlama asistanı mı kullanıyorsunuz? otpmock.com/llms-full.txt adresini verin.
Ücretsiz API anahtarı al