クイックスタート: Microsoft Entra ID を使用して認証する
Microsoft Entra ID を使用して、Azure Communication Services を開始します。 Communication Services ID と SMS SDK は、Microsoft Entra 認証をサポートしています。
このクイックスタートでは、Active Directory をサポートする Azure 環境から、ID および SMS SDK へのアクセスを承認する方法について説明します。 作業用にサービス プリンシパルを作成し、開発環境でコードスをテストする方法についても説明しています。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成する
- アクティブな Azure Communication Services リソース。ない場合は、「Communication Services リソースを作成する」を参照してください。
- SMS を送信するには、電話番号が必要です。
- 開発環境用のセットアップ サービス プリンシパルについては、サービス プリンシパルを使用したアクセスの承認に関する記事を参照してください
追加の前提条件
- Azure CLI。 インストール ガイド
設定
他の Azure リソースに Active Directory を使用している場合は、マネージド ID を使用する必要があります。 Azure リソースのマネージド ID を有効にする方法については、次の記事のいずれかを参照してください。
- Azure Portal
- Azure PowerShell
- Azure CLI
- Azure Resource Manager テンプレート
- Azure Resource Manager SDK
- App Services
開発環境で登録したアプリケーションを認証する
開発環境で Web ブラウザーによるシングル サインオンまたはログインがサポートされていない場合は、登録したアプリケーションを使用して開発環境から認証を受けることができます。
Microsoft Entra 登録済みアプリケーションの作成
Azure CLI から登録したアプリケーションを作成するには、操作を実行する Azure アカウントにログインする必要があります。 これを行うには、az login
コマンドを使用して、ブラウザーで資格情報を入力します。 CLI から Azure アカウントにログインしたら、az ad sp create-for-rbac
コマンドを呼び出して、登録されたアプリケーションとサービス プリンシパルを作成できます。
次の例では、Azure CLI を使って、新しい登録済みアプリケーションを作成します。
az ad sp create-for-rbac --name <application-name> --role Contributor --scopes /subscriptions/<subscription-id>
az ad sp create-for-rbac
コマンドによって、サービス プリンシパルのプロパティの一覧が JSON 形式で返されます。 これらの値をコピーして、次の手順で必要な環境変数を作成するために使用できるようにします。
{
"appId": "generated-app-ID",
"displayName": "service-principal-name",
"name": "http://service-principal-uri",
"password": "generated-password",
"tenant": "tenant-ID"
}
重要
Azure ロールの割り当ての反映には数分かかることがあります。
環境変数の設定
Azure ID SDK では、実行時に 3 つの環境変数から値が読み取られ、アプリケーションが認証されます。 次の表で、各環境変数に設定する値について説明します。
環境変数 | 値 |
---|---|
AZURE_CLIENT_ID |
生成された JSON の appId の値 |
AZURE_TENANT_ID |
生成された JSON の tenant の値 |
AZURE_CLIENT_SECRET |
生成された JSON の password の値 |
重要
環境変数を設定したら、コンソール ウィンドウを閉じて再度開きます。 Visual Studio または他の開発環境を使用している場合は、新しい環境変数を登録するために再起動が必要となる可能性があります。
これらの変数が設定されると、コード内の DefaultAzureCredential オブジェクトを使用して、選択したサービス クライアントに対して認証できるようになります。
Note
このクイックスタートの最終的なコードは GitHub にあります
設定
新しい C# アプリケーションを作成する
コンソール ウィンドウ (cmd、PowerShell、Bash など) で、dotnet new
コマンドを使用し、ActiveDirectoryQuickstart
という名前で新しいコンソール アプリを作成します。 このコマンドにより、1 つのソース ファイル (Program.cs
) を使用する単純な "Hello World" C# プロジェクトが作成されます。
dotnet new console -o ActiveDirectoryAuthenticationQuickstart
新しく作成したアプリ フォルダーにディレクトリを変更し、dotnet build
コマンドを使用してアプリケーションをコンパイルします。
cd ActiveDirectoryAuthenticationQuickstart
dotnet build
SDK パッケージをインストールする
dotnet add package Azure.Communication.Identity
dotnet add package Azure.Communication.Sms
dotnet add package Azure.Identity
SDK パッケージを使用する
Azure ID と Azure Storage SDK を使用するには、次の using
ディレクティブを Program.cs
に追加します。
using Azure.Identity;
using Azure.Communication.Identity;
using Azure.Communication.Sms;
using Azure.Core;
using Azure;
DefaultAzureCredential を作成する
このクイックスタートでは、DefaultAzureCredential を使用します。 この資格情報は、運用と開発の各環境に適しています。 これは各操作に必要なので、Program.cs
クラス内に作成します。 ファイルの先頭に以下を追加します。
private DefaultAzureCredential credential = new DefaultAzureCredential();
サービス プリンシパルを使用してトークンを発行する
次に、作成した資格情報を使用するコードを追加して、VoIP アクセス トークンを発行します。 このコードは後で呼び出します。
public AccessToken CreateIdentityAndGetTokenAsync(Uri resourceEndpoint)
{
var client = new CommunicationIdentityClient(resourceEndpoint, this.credential);
var result = client.CreateUserAndToken(scopes: new[] { CommunicationTokenScope.VoIP });
var (user, token) = response.Value;
return token;
}
サービス プリンシパルを使用して SMS を送信する
サービス プリンシパルを使用するもう 1 つの例として、同じ資格情報を使用して SMS を送信する次のコードを追加します。
public SmsSendResult SendSms(Uri resourceEndpoint, string from, string to, string message)
{
SmsClient smsClient = new SmsClient(resourceEndpoint, this.credential);
SmsSendResult sendResult = smsClient.Send(
from: from,
to: to,
message: message,
new SmsSendOptions(enableDeliveryReport: true) // optional
);
return sendResult;
}
Main メソッドを作成する
Program.cs
には Main メソッドが既に含まれているはずなので、前に作成したコードを呼び出してサービス プリンシパルの使用方法を実演するコードを追加してみましょう。
static void Main(string[] args)
{
// You can find your endpoint and access key from your resource in the Azure portal
// e.g. "https://<RESOURCE_NAME>.communication.azure.com";
Uri endpoint = new("https://<RESOURCENAME>.communication.azure.com/");
// We need an instance of the program class to use within this method.
Program instance = new();
Console.WriteLine("Retrieving new Access Token, using Service Principals");
AccessToken response = instance.CreateIdentityAndGetTokenAsync(endpoint);
Console.WriteLine($"Retrieved Access Token: {response.Token}");
Console.WriteLine("Sending SMS using Service Principals");
// You will need a phone number from your resource to send an SMS.
SmsSendResult result = instance.SendSms(endpoint, "<Your Azure Communication Services Phone Number>", "<The Phone Number you'd like to send the SMS to.>", "Hello from using Service Principals");
Console.WriteLine($"Sms id: {result.MessageId}");
Console.WriteLine($"Send Result Successful: {result.Successful}");
}
最終的な Program.cs
ファイルは次のようになります。
class Program
{
private DefaultAzureCredential credential = new DefaultAzureCredential();
static void Main(string[] args)
{
// You can find your endpoint and access key from your resource in the Azure portal
// e.g. "https://<RESOURCE_NAME>.communication.azure.com";
Uri endpoint = new("https://acstestingrifox.communication.azure.com/");
// We need an instance of the program class to use within this method.
Program instance = new();
Console.WriteLine("Retrieving new Access Token, using Service Principals");
AccessToken response = instance.CreateIdentityAndGetTokenAsync(endpoint);
Console.WriteLine($"Retrieved Access Token: {response.Token}");
Console.WriteLine("Sending SMS using Service Principals");
// You will need a phone number from your resource to send an SMS.
SmsSendResult result = instance.SendSms(endpoint, "<Your Azure Communication Services Phone Number>", "<The Phone Number you'd like to send the SMS to.>", "Hello from Service Principals");
Console.WriteLine($"Sms id: {result.MessageId}");
Console.WriteLine($"Send Result Successful: {result.Successful}");
}
public AccessToken CreateIdentityAndGetTokenAsync(Uri resourceEndpoint)
{
var client = new CommunicationIdentityClient(resourceEndpoint, this.credential);
var result = client.CreateUserAndToken(scopes: new[] { CommunicationTokenScope.VoIP });
var (user, token) = response.Value;
return token;
}
public SmsSendResult SendSms(Uri resourceEndpoint, string from, string to, string message)
{
SmsClient smsClient = new SmsClient(resourceEndpoint, this.credential);
SmsSendResult sendResult = smsClient.Send(
from: from,
to: to,
message: message,
new SmsSendOptions(enableDeliveryReport: true) // optional
);
return sendResult;
}
}
プログラムを実行する
これで、アプリケーション フォルダーから dotnet run
を使用して、アプリケーションを実行できるようになりました。 出力は次のようになります。
Retrieving new Access Token, using Service Principals
Retrieved Access Token: ey....
Sending SMS using Service Principals
Sms id: Outgoing_..._noam
Send Result Successful: True
Note
このクイックスタートの最終的なコードは GitHub にあります
設定
新しい Node.js アプリケーションを作成する
ターミナルまたはコマンド ウィンドウを開き、アプリ用の新しいディレクトリを作成し、そこに移動します。
mkdir active-directory-authentication-quickstart && cd active-directory-authentication-quickstart
既定の設定で npm init -y
を実行して、package.json ファイルを作成します。
npm init -y
SDK パッケージをインストールする
npm install @azure/communication-identity
npm install @azure/communication-common
npm install @azure/communication-sms
npm install @azure/identity
新しいファイルを作成する
テキスト エディターで新規ファイルを開き、index.js
として保存します。このファイル内にコードを配置していきます。
SDK パッケージを使用する
Azure ID と Azure Storage SDK を使用するには、次の require
ディレクティブを index.js
の先頭に追加します。
const { DefaultAzureCredential } = require("@azure/identity");
const { CommunicationIdentityClient, CommunicationUserToken } = require("@azure/communication-identity");
const { SmsClient, SmsSendRequest } = require("@azure/communication-sms");
DefaultAzureCredential を作成する
このクイックスタートでは、DefaultAzureCredential を使用します。 この資格情報は、運用と開発の各環境に適しています。 これは各操作に必要なので、index.js
ファイルの先頭に作成します。
const credential = new DefaultAzureCredential();
ID を作成し、サービス プリンシパルを使用してトークンを発行します
次に、新しい ID を作成してこの ID のトークンを発行する関数を作成します。これは、後にサービス プリンシパルの設定をテストするために使用します。
async function createIdentityAndIssueToken(resourceEndpoint) {
const client = new CommunicationIdentityClient(resourceEndpoint, credential);
return await client.createUserAndToken(["chat"]);
}
サービス プリンシパルを使用して SMS を送信する
次に、サービス プリンシパルを使用して SMS を送信する関数を作成します。
async function sendSms(resourceEndpoint, fromNumber, toNumber, message) {
const smsClient = new SmsClient(resourceEndpoint, credential);
const sendRequest = {
from: fromNumber,
to: [toNumber],
message: message
};
return await smsClient.send(
sendRequest,
{} //Optional SendOptions
);
}
main 関数を記述する
関数を作成したので、それらを呼び出す main 関数を作成し、サービス プリンシパルの使用方法について実演してみましょう。
async function main() {
// You can find your endpoint and access key from your resource in the Azure portal
// e.g. "https://<RESOURCE_NAME>.communication.azure.com";
const endpoint = "https://<RESOURCE_NAME>.communication.azure.com/"
console.log("Retrieving new Access Token, using Service Principals");
const result = await createIdentityAndIssueToken(endpoint);
console.log(`Retrieved Access Token: ${result.token}`);
console.log("Sending SMS using Service Principals");
// You will need a phone number from your resource to send an SMS.
const smsResult = await sendSms(endpoint, "<FROM NUMBER>", "<TO NUMBER>", "Hello from Service Principals");
console.log(`SMS ID: ${smsResult[0].messageId}`);
console.log(`Send Result Successful: ${smsResult[0].successful}`);
}
main();
最終的な index.js
ファイルは次のようになります。
const { DefaultAzureCredential } = require("@azure/identity");
const { CommunicationIdentityClient, CommunicationUserToken } = require("@azure/communication-identity");
const { SmsClient, SmsSendRequest } = require("@azure/communication-sms");
const credential = new DefaultAzureCredential();
async function createIdentityAndIssueToken(resourceEndpoint) {
const client = new CommunicationIdentityClient(resourceEndpoint, credential);
return await client.createUserAndToken(["chat"]);
}
async function sendSms(resourceEndpoint, fromNumber, toNumber, message) {
const smsClient = new SmsClient(resourceEndpoint, credential);
const sendRequest = {
from: fromNumber,
to: [toNumber],
message: message
};
return await smsClient.send(
sendRequest,
{} //Optional SendOptions
);
}
async function main() {
// You can find your endpoint and access key from your resource in the Azure portal
// e.g. "https://<RESOURCE_NAME>.communication.azure.com";
const endpoint = "https://<RESOURCE_NAME>.communication.azure.com/"
console.log("Retrieving new Access Token, using Service Principals");
const result = await createIdentityAndIssueToken(endpoint);
console.log(`Retrieved Access Token: ${result.token}`);
console.log("Sending SMS using Service Principals");
// You will need a phone number from your resource to send an SMS.
const smsResult = await sendSms(endpoint, "<FROM NUMBER>", "<TO NUMBER>", "Hello from Service Principals");
console.log(`SMS ID: ${smsResult[0].messageId}`);
console.log(`Send Result Successful: ${smsResult[0].successful}`);
}
main();
プログラムを実行する
すべてが完了したら、プロジェクトのディレクトリから node index.js
と入力してファイルを実行できます。 正常に実行されると、次のような出力結果が表示されます。
$ node index.js
Retrieving new Access Token, using Service Principals
Retrieved Access Token: ey...Q
Sending SMS using Service Principals
SMS ID: Outgoing_2021040602194...._noam
Send Result Successful: true
Java の追加の前提条件
Java の場合は、以下も必要となります。
- Java Development Kit (JDK) バージョン 8 以降。
- Apache Maven。
Note
このクイックスタートの最終的なコードは GitHub にあります
設定
新しい Java アプリケーションを作成する
ターミナルまたはコマンド ウィンドウを開きます。 Java アプリケーションを作成するディレクトリに移動します。 次のコマンドを実行して、maven-archetype-quickstart テンプレートから Java プロジェクトを生成します。
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
"generate" タスクによって、artifactId
と同じ名前のディレクトリが作成されたことがわかります。 このディレクトリの下の src/main/java ディレクトリにはプロジェクトのソース コードが含まれており、 src/test/java directory
にはテスト ソースが含まれており、pom.xml
ファイルはプロジェクトのプロジェクト オブジェクト モデル (POM) です。
パッケージをインストールする
テキスト エディターで pom.xml ファイルを開きます。 依存関係のグループに、次の dependency 要素を追加します。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
<version>[1.4.0,)</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-sms</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.2.3</version>
</dependency>
SDK パッケージを使用する
Azure ID と Azure Communication SDK を使用するには、次の import
ディレクティブをコードに追加します。
import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.communication.sms.*;
import com.azure.communication.sms.models.*;
import com.azure.core.credential.*;
import com.azure.identity.*;
import java.util.*;
DefaultAzureCredential を作成する
このクイックスタートでは、DefaultAzureCredential を使用します。 この資格情報は、運用と開発の各環境に適しています。 これは各操作に必要なので、App.java
クラス内に作成します。 App.java
の先頭に以下を追加します。
private TokenCredential credential = new DefaultAzureCredentialBuilder().build();
サービス プリンシパルを使用してトークンを発行する
次に、作成した資格情報を使用するコードを追加して、VoIP アクセス トークンを発行します。 このコードは後で呼び出します。
public AccessToken createIdentityAndGetTokenAsync(String endpoint) {
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(this.credential)
.buildClient();
CommunicationUserIdentifierAndToken result = communicationIdentityClient.createUserAndToken(new ArrayList<>(Arrays.asList(CommunicationTokenScope.CHAT)));
return result.getUserToken();
}
サービス プリンシパルを使用して SMS を送信する
サービス プリンシパルを使用するもう 1 つの例として、同じ資格情報を使用して SMS を送信する次のコードを追加します。
public SmsSendResult sendSms(String endpoint, String from, String to, String message) {
SmsClient smsClient = new SmsClientBuilder()
.endpoint(endpoint)
.credential(this.credential)
.buildClient();
// Send the message and check the response for a message id
return smsClient.send(from, to, message);
}
Main メソッドを作成する
App.java
には Main メソッドが既に含まれているはずなので、前に作成したコードを呼び出してサービス プリンシパルの使用方法を実演するコードを追加してみましょう。
public static void main(String[] args) {
App instance = new App();
// You can find your endpoint and access key from your resource in the Azure portal
// e.g. "https://<RESOURCE_NAME>.communication.azure.com";
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com/";
System.out.println("Retrieving new Access Token, using Service Principals");
AccessToken token = instance.createIdentityAndGetTokenAsync(endpoint);
System.out.println("Retrieved Access Token: "+ token.getToken());
System.out.println("Sending SMS using Service Principals");
// You will need a phone number from your resource to send an SMS.
SmsSendResult result = instance.sendSms(endpoint, "<FROM NUMBER>", "<TO NUMBER>", "Hello from Service Principals");
System.out.println("Sms id: "+ result.getMessageId());
System.out.println("Send Result Successful: "+ result.isSuccessful());
}
最終的な App.java
は、次のようになります。
package com.communication.quickstart;
import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.communication.sms.*;
import com.azure.communication.sms.models.*;
import com.azure.core.credential.*;
import com.azure.identity.*;
import java.util.*;
public class App
{
private TokenCredential credential = new DefaultAzureCredentialBuilder().build();
public SmsSendResult sendSms(String endpoint, String from, String to, String message) {
SmsClient smsClient = new SmsClientBuilder()
.endpoint(endpoint)
.credential(this.credential)
.buildClient();
// Send the message and check the response for a message id
return smsClient.send(from, to, message);
}
public AccessToken createIdentityAndGetTokenAsync(String endpoint) {
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(this.credential)
.buildClient();
CommunicationUserIdentifierAndToken result = communicationIdentityClient.createUserAndToken(new ArrayList<>(Arrays.asList(CommunicationTokenScope.CHAT)));
return result.getUserToken();
}
public static void main(String[] args) {
App instance = new App();
// You can find your endpoint and access key from your resource in the Azure portal
// e.g. "https://<RESOURCE_NAME>.communication.azure.com";
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com/";
System.out.println("Retrieving new Access Token, using Service Principals");
AccessToken token = instance.createIdentityAndGetTokenAsync(endpoint);
System.out.println("Retrieved Access Token: "+ token.getToken());
System.out.println("Sending SMS using Service Principals");
// You will need a phone number from your resource to send an SMS.
SmsSendResult result = instance.sendSms(endpoint, "<FROM NUMBER>", "<TO NUMBER>", "Hello from Service Principals");
System.out.println("Sms id: "+ result.getMessageId());
System.out.println("Send Result Successful: "+ result.isSuccessful());
}
}
コードの実行
pom.xml ファイルが格納されているディレクトリに移動し、次の mvn
コマンドを使用してプロジェクトをコンパイルします。
mvn compile
次に、パッケージをビルドします。
mvn package
次の mvn
コマンドを実行して、アプリを実行します。
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
最終的な出力は次のようになります。
Retrieving new Access Token, using Service Principals
Retrieved Access Token: ey..A
Sending SMS using using Service Principals
Sms id: Outgoing_202104...33f8ae1f_noam
Send Result Successful: true
Note
このクイックスタートの最終的なコードは GitHub にあります
設定
新しい Python アプリケーションを作成する
ターミナルまたはコマンド ウィンドウを開き、自分のアプリ用に新しいディレクトリを作成し、そこに移動します。
mkdir active-directory-authentication-quickstart && cd active-directory-authentication-quickstart
SDK パッケージをインストールする
pip install azure-identity
pip install azure-communication-identity
pip install azure-communication-sms
新しいファイルを作成する
作成したフォルダー内に authentication.py
という名前の新しいファイルを開いて保存すると、このファイル内にコードが配置されます。
SDK パッケージを使用する
インストールした SDK を使用するには、ファイルの先頭に次の import
ステートメントを追加します。
from azure.identity import DefaultAzureCredential
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.sms import SmsClient
DefaultAzureCredential を作成する
DefaultAzureCredential を使用します。 この資格情報は、運用と開発の各環境に適しています。 このクイックスタート全体で使用するため、ファイルの先頭に作成します。
credential = DefaultAzureCredential()
ID を作成し、サービス プリンシパルを使用してトークンを発行する
次に、作成した資格情報を使用するコードを追加して、VoIP アクセストークンを発行します。 このコードは後で呼び出します。
def create_identity_and_get_token(resource_endpoint):
client = CommunicationIdentityClient(resource_endpoint, credential)
user, token_response = client.create_user_and_token(scopes=["voip"])
return token_response
サービス プリンシパルを使用して SMS を送信する
サービス プリンシパルのもう 1 つの使用例として、同じ資格情報を使用して SMS を送信するこのコードを追加します。
def send_sms(resource_endpoint, from_phone_number, to_phone_number, message_content):
sms_client = SmsClient(resource_endpoint, credential)
sms_client.send(
from_=from_phone_number,
to_=[to_phone_number],
message=message_content,
enable_delivery_report=True # optional property
)
メイン コードを作成する
関数を作成したら、以前に作成した関数を呼び出すメイン コードを作成できるようになります。
# You can find your endpoint and access key from your resource in the Azure portal
# e.g. "https://<RESOURCE_NAME>.communication.azure.com";
endpoint = "https://<RESOURCE_NAME>.communication.azure.com/"
print("Retrieving new Access Token, using Service Principals");
result = create_identity_and_get_token(endpoint);
print(f'Retrieved Access Token: {result.token}');
print("Sending SMS using Service Principals");
# You will need a phone number from your resource to send an SMS.
sms_result = send_sms(endpoint, "<FROM_NUMBER>", "<TO_NUMBER>", "Hello from Service Principals");
print(f'SMS ID: {sms_result[0].message_id}');
print(f'Send Result Successful: {sms_result[0].successful}');
最終的な authentication.py
ファイルは次のようになります。
from azure.identity import DefaultAzureCredential
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.sms import SmsClient
credential = DefaultAzureCredential()
def create_identity_and_get_token(resource_endpoint):
client = CommunicationIdentityClient(resource_endpoint, credential)
user, token_response = client.create_user_and_token(scopes=["voip"])
return token_response
def send_sms(resource_endpoint, from_phone_number, to_phone_number, message_content):
sms_client = SmsClient(resource_endpoint, credential)
response = sms_client.send(
from_=from_phone_number,
to=[to_phone_number],
message=message_content,
enable_delivery_report=True # optional property
)
return response
# You can find your endpoint and access key from your resource in the Azure portal
# e.g. "https://<RESOURCE_NAME>.communication.azure.com";
endpoint = "https://<RESOURCE_NAME>.communication.azure.com/"
print("Retrieving new Access Token, using Service Principals");
result = create_identity_and_get_token(endpoint);
print(f'Retrieved Access Token: {result.token}');
print("Sending SMS using Service Principals");
# You will need a phone number from your resource to send an SMS.
sms_result = send_sms(endpoint, "<FROM_NUMBER>", "<TO_NUMBER>", "Hello from Service Principals");
print(f'SMS ID: {sms_result[0].message_id}');
print(f'Send Result Successful: {sms_result[0].successful}');
プログラムを実行する
すべてが完了したら、プロジェクトのディレクトリから python authentication.py
と入力してファイルを実行できます。 正常に実行されると、次のような出力結果が表示されます。
$ python authentication.py
Retrieving new Access Token, using Service Principals
Retrieved Access Token: ey...Q
Sending SMS using using Service Principals
SMS ID: Outgoing_2021040602194...._noam
Send Result Successful: true