Java 用 Azure Communications SMS Service クライアント ライブラリ - バージョン 1.1.18
Azure Communication SMS は、単純なテキスト メッセージを送信するために使用されます。
ソースコード | パッケージ (Maven) | API リファレンス ドキュメント | 製品ドキュメント
作業の開始
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Java Development Kit (JDK) バージョン 8 以降。
- Apache Maven。
- デプロイ済みの Communication Services リソース。 Azure Portal またはAzure PowerShellを使用して設定できます。
パッケージを組み込む
BOM ファイルを含める
ライブラリの一般提供 (GA) バージョンに依存するには、azure-sdk-bom をプロジェクトに含めてください。 次のスニペットでは、{bom_version_to_target} プレースホルダーをバージョン番号に置き換えます。 BOM の詳細については、 AZURE SDK BOM README に関するページを参照してください。
<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>
次に、バージョン タグのない依存関係セクションに直接依存関係を含めます。
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-sms</artifactId>
</dependency>
</dependencies>
直接依存関係を含める
BOM に存在しない特定のバージョンのライブラリに依存する場合は、次のように直接依存関係をプロジェクトに追加します。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-sms</artifactId>
<version>1.1.18</version>
</dependency>
クライアントを認証する
Azure Active Directory トークン認証
オブジェクトは DefaultAzureCredential
credential() 関数を介して に SmsClientBuilder
渡す必要があります。 Endpoint と httpClient は、それぞれ endpoint() 関数と httpClient() 関数を使用して設定する必要があります。
AZURE_CLIENT_SECRET
、 AZURE_CLIENT_ID
および AZURE_TENANT_ID
環境変数は、DefaultAzureCredential オブジェクトを作成するために必要です。
// 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();
アクセス キー認証
SMS は、リソース アクセス キーを使用して HMAC 認証を使用します。
アクセス キーは、credential() 関数を介して に SmsClientBuilder
提供する必要があります。 Endpoint と httpClient は、それぞれ endpoint() 関数と httpClient() 関数を使用して設定する必要があります。
// 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();
または、エンドポイントとアクセス キーを指定する代わりに、connectionString() 関数を使用して接続文字列全体を指定することもできます。
// 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();
主要な概念
Azure Communication SMS サービスを使用する認証には、2 つの異なる形式があります。
例
1:1 の SMS メッセージを送信する
または sendWithResponse
関数をsend
使用して、SMS メッセージを 1 つの電話番号に送信します。
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());
1:N の SMS メッセージを送信する
SMS メッセージを受信者の一覧に送信するには、受信者の電話番号の一覧を含む または sendWithResponse
関数を呼び出send
します。 また、オプション オブジェクトに pass を追加して、配信レポートを有効にするかどうかを指定し、カスタム タグを設定することもできます。
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());
}
トラブルシューティング
SMS 操作は、サーバーへの要求が失敗した場合に例外をスローします。
エラーが個々のメッセージによって発生した場合、要求全体で何かが失敗した場合にのみ、例外はスローされません。
フラグを使用して個々の isSuccessful()
結果を検証し、メッセージが送信されたかどうかを確認してください。
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());
}
次の手順
- SMS の詳細については、「Azure Communication Services」を参照してください
- SMS メッセージの配信レポートを構成する方法の基本的なガイドについては、 SMS イベントの処理に関するクイックスタートを参照してください。
共同作成
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。
pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。
このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。