Azure Communications SMS Service-Clientbibliothek für Java – Version 1.1.18
Azure Communication-SMS wird verwendet, um einfache Textnachrichten zu senden.
Quellcode | Paket (Maven) | API-Referenzdokumentation | Produktdokumentation
Erste Schritte
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Java Development Kit (JDK), Version 8 oder höher.
- Apache Maven.
- Eine bereitgestellte Communication Services-Ressource. Sie können das Azure-Portal oder das Azure PowerShell verwenden, um es einzurichten.
Einschließen des Pakets
BOM-Datei einfügen
Fügen Sie das azure-sdk-bom in Ihr Projekt ein, um die Abhängigkeit von der General Availability (GA)-Version der Bibliothek zu übernehmen. Ersetzen Sie im folgenden Codeausschnitt den Platzhalter {bom_version_to_target} durch die Versionsnummer. Weitere Informationen zur Stückliste finden Sie in der AZURE SDK-BOM-INFODATEI.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
und fügen Sie dann die direkte Abhängigkeit ohne Versions-Tag in den Abschnitt „Abhängigkeit“ ein.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-sms</artifactId>
</dependency>
</dependencies>
Direkte Abhängigkeiten einfügen
Wenn Sie abhängigkeiten von einer bestimmten Version der Bibliothek übernehmen möchten, die in der Stückliste nicht vorhanden ist, fügen Sie die direkte Abhängigkeit wie folgt zu Ihrem Projekt hinzu.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-sms</artifactId>
<version>1.1.18</version>
</dependency>
Authentifizieren des Clients
Azure Active Directory-Tokenauthentifizierung
Ein DefaultAzureCredential
-Objekt muss über die SmsClientBuilder
credential()-Funktion an die übergeben werden. Endpunkt und httpClient müssen auch über die Funktionen endpoint() bzw. httpClient() festgelegt werden.
AZURE_CLIENT_SECRET
, AZURE_CLIENT_ID
und AZURE_TENANT_ID
Umgebungsvariablen werden benötigt, um ein DefaultAzureCredential-Objekt zu erstellen.
// You can find your endpoint and access key from your resource in the Azure Portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
SmsClient smsClient = new SmsClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Zugriffsschlüsselauthentifizierung
SMS verwendet die HMAC-Authentifizierung mit dem Ressourcenzugriffsschlüssel.
Der Zugriffsschlüssel muss über die SmsClientBuilder
credential()-Funktion bereitgestellt werden. Endpunkt und httpClient müssen auch über die Funktionen endpoint() bzw. httpClient() festgelegt werden.
// You can find your endpoint and access key from your resource in the Azure Portal
String endpoint = "https://<resource-name>.communication.azure.com";
AzureKeyCredential azureKeyCredential = new AzureKeyCredential("<access-key>");
SmsClient smsClient = new SmsClientBuilder()
.endpoint(endpoint)
.credential(azureKeyCredential)
.buildClient();
Alternativ können Sie die gesamte Verbindungszeichenfolge mithilfe der Funktion connectionString() bereitstellen, anstatt den Endpunkt und den Zugriffsschlüssel bereitzustellen.
// You can find your connection string from your resource in the Azure Portal
String connectionString = "https://<resource-name>.communication.azure.com/;<access-key>";
SmsClient smsClient = new SmsClientBuilder()
.connectionString(connectionString)
.buildClient();
Wichtige Begriffe
Es gibt zwei verschiedene Arten der Authentifizierung, um den Azure Communication SMS-Dienst zu verwenden.
Beispiele
Senden einer SMS: 1:1
Verwenden Sie die send
Funktion oder sendWithResponse
, um eine SMS-Nachricht an eine einzelne Telefonnummer zu senden.
SmsSendResult sendResult = smsClient.send(
"<from-phone-number>",
"<to-phone-number>",
"Weekly Promotion");
System.out.println("Message Id: " + sendResult.getMessageId());
System.out.println("Recipient Number: " + sendResult.getTo());
System.out.println("Send Result Successful:" + sendResult.isSuccessful());
Senden einer SMS: 1:N
Um eine SMS-Nachricht an eine Liste von Empfängern zu senden, rufen Sie die send
Funktion oder sendWithResponse
mit einer Liste der Empfängertelefonnummern auf. Sie können auch einen Pass in einem Optionsobjekt hinzufügen, um anzugeben, ob der Übermittlungsbericht aktiviert werden soll, und benutzerdefinierte Tags festzulegen.
SmsSendOptions options = new SmsSendOptions();
options.setDeliveryReportEnabled(true);
options.setTag("Marketing");
Iterable<SmsSendResult> sendResults = smsClient.sendWithResponse(
"<from-phone-number>",
Arrays.asList("<to-phone-number1>", "<to-phone-number2>"),
"Weekly Promotion",
options /* Optional */,
Context.NONE).getValue();
for (SmsSendResult result : sendResults) {
System.out.println("Message Id: " + result.getMessageId());
System.out.println("Recipient Number: " + result.getTo());
System.out.println("Send Result Successful:" + result.isSuccessful());
}
Problembehandlung
SMS-Vorgänge lösen eine Ausnahme aus, wenn die Anforderung an den Server fehlschlägt.
Ausnahmen werden nicht ausgelöst, wenn der Fehler durch eine einzelne Nachricht verursacht wird, nur wenn bei der Gesamtanforderung ein Fehler auftritt.
Verwenden Sie das isSuccessful()
Flag, um jedes einzelne Ergebnis zu überprüfen, ob die Nachricht gesendet wurde.
try {
SmsSendOptions options = new SmsSendOptions();
options.setDeliveryReportEnabled(true);
options.setTag("Marketing");
Response<Iterable<SmsSendResult>> sendResults = smsClient.sendWithResponse(
"<from-phone-number>",
Arrays.asList("<to-phone-number1>", "<to-phone-number2>"),
"Weekly Promotion",
options /* Optional */,
Context.NONE);
Iterable<SmsSendResult> smsSendResults = sendResults.getValue();
for (SmsSendResult result : smsSendResults) {
if (result.isSuccessful()) {
System.out.println("Successfully sent this message: " + result.getMessageId() + " to " + result.getTo());
} else {
System.out.println("Something went wrong when trying to send this message " + result.getMessageId() + " to " + result.getTo());
System.out.println("Status code " + result.getHttpStatusCode() + " and error message " + result.getErrorMessage());
}
}
} catch (RuntimeException ex) {
System.out.println(ex.getMessage());
}
Nächste Schritte
- Weitere Informationen zu SMS in Azure Communication Services
- Eine grundlegende Anleitung zum Konfigurieren der Übermittlungsberichterstattung für Ihre SMS-Nachrichten finden Sie im Schnellstart verarbeiten von SMS-Ereignissen.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Für die meisten Beiträge ist die Zustimmung zu einer Lizenzvereinbarung für Mitwirkende (Contributor License Agreement, CLA) erforderlich, in der Sie erklären, dass Sie dazu berechtigt sind, uns die Rechte für die Nutzung Ihres Beitrags zu erteilen, und dies auch tun.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.