Aracılığıyla paylaş


Hızlı Başlangıç: Microsoft Entra Id kullanarak kimlik doğrulaması

Microsoft Entra Id kullanarak Azure İletişim Hizmetleri kullanmaya başlayın. İletişim Hizmetleri Kimliği ve SMS SDK'ları Microsoft Entra kimlik doğrulamasını destekler.

Bu hızlı başlangıçta, Active Directory'yi destekleyen bir Azure ortamından Kimlik ve SMS SDK'larına erişimi yetkilendirme işlemi gösterilmektedir. Ayrıca, çalışmanız için bir hizmet sorumlusu oluşturarak kodunuzu geliştirme ortamında nasıl test etmek istediğiniz de açıklanır.

Önkoşullar

Ek Önkoşullar

Ayarlama

Diğer Azure Kaynakları için Active Directory kullanırken Yönetilen kimlikleri kullanıyor olmanız gerekir. Azure Kaynakları için yönetilen kimlikleri etkinleştirmeyi öğrenmek için şu makalelerden birine bakın:

Geliştirme ortamında kayıtlı bir uygulamanın kimliğini doğrulama

Geliştirme ortamınız bir web tarayıcısı aracılığıyla çoklu oturum açmayı veya oturum açmayı desteklemiyorsa, geliştirme ortamından kimlik doğrulaması yapmak için kayıtlı bir uygulama kullanabilirsiniz.

Microsoft Entra kayıtlı uygulaması oluşturma

Azure CLI'dan kayıtlı bir uygulama oluşturmak için işlemlerin gerçekleşmesini istediğiniz Azure hesabında oturum açmanız gerekir. Bunu yapmak için komutunu kullanabilir az login ve tarayıcıya kimlik bilgilerinizi girebilirsiniz. CLI'dan Azure hesabınızda oturum açtıktan sonra, kayıtlı uygulamayı ve hizmet sorumlusunu az ad sp create-for-rbac oluşturmak için komutunu çağırabiliriz.

Aşağıdaki örnek, yeni bir kayıtlı uygulama oluşturmak için Azure CLI'yi kullanır:

az ad sp create-for-rbac --name <application-name> --role Contributor --scopes /subscriptions/<subscription-id>

Komut, az ad sp create-for-rbac JSON biçiminde hizmet sorumlusu özelliklerinin listesini döndürür. Bu değerleri kopyalayarak sonraki adımda gerekli ortam değişkenlerini oluşturabilmenizi sağlayın.

{
    "appId": "generated-app-ID",
    "displayName": "service-principal-name",
    "name": "http://service-principal-uri",
    "password": "generated-password",
    "tenant": "tenant-ID"
}

Önemli

Azure rol atamalarının yayılması birkaç dakika sürebilir.

Ortam değişkenlerini belirleme

Azure Kimlik SDK'sı, uygulamanın kimliğini doğrulamak için çalışma zamanında üç ortam değişkeninden değerleri okur. Aşağıdaki tabloda her ortam değişkeni için ayarlanacağı değer açıklanmaktadır.

Ortam değişkeni Değer
AZURE_CLIENT_ID appId oluşturulan JSON değerinden
AZURE_TENANT_ID tenant oluşturulan JSON değerinden
AZURE_CLIENT_SECRET password oluşturulan JSON değerinden

Önemli

Ortam değişkenlerini ayarladıktan sonra konsol pencerenizi kapatıp yeniden açın. Visual Studio veya başka bir geliştirme ortamı kullanıyorsanız, yeni ortam değişkenlerini kaydetmek için yeniden başlatmanız gerekebilir.

Bu değişkenler ayarlandıktan sonra, seçtiğiniz hizmet istemcisinde kimlik doğrulaması yapmak için kodunuzda DefaultAzureCredential nesnesini kullanabilmeniz gerekir.

Not

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun

Ayarlama

Yeni bir C# uygulaması oluşturma

Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı ActiveDirectoryQuickstartyeni bir konsol uygulaması oluşturmak için komutunu kullanındotnet new. Bu komut, tek bir kaynak dosyasıyla basit bir "Merhaba Dünya" C# projesi oluşturur: Program.cs.

dotnet new console -o ActiveDirectoryAuthenticationQuickstart

Dizininizi yeni oluşturulan uygulama klasörüne değiştirin ve komutunu kullanarak dotnet build uygulamanızı derleyin.

cd ActiveDirectoryAuthenticationQuickstart
dotnet build

SDK paketlerini yükleme

dotnet add package Azure.Communication.Identity
dotnet add package Azure.Communication.Sms
dotnet add package Azure.Identity

SDK paketlerini kullanma

Azure Kimliği ve Azure Depolama SDK'larını Program.cs kullanmak için aşağıdaki using yönergeleri ekleyin.

using Azure.Identity;
using Azure.Communication.Identity;
using Azure.Communication.Sms;
using Azure.Core;
using Azure;

DefaultAzureCredential Oluşturma

Bu hızlı başlangıç için DefaultAzureCredential kullanacağız. Bu kimlik bilgisi üretim ve geliştirme ortamları için uygundur. Her işlem için gerektiğinden sınıfı içinde Program.cs oluşturalım. Aşağıdaki öğesini dosyasının başına ekleyin.

private DefaultAzureCredential credential = new DefaultAzureCredential();

Hizmet sorumlularıyla belirteç verme

Şimdi bir VoIP Erişim Belirteci vermek için oluşturulan kimlik bilgilerini kullanan kodu ekleyeceğiz. Bu kodu daha sonra çağıracağız.

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;
}

Hizmet sorumlularıyla SMS gönderme

Hizmet sorumlularını kullanmanın başka bir örneği olarak, SMS göndermek için aynı kimlik bilgilerini kullanan bu kodu ekleyeceğiz:

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 yöntemini yazma

Zaten bir Main yönteminiz Program.cs olmalıdır, şimdi hizmet sorumlularının kullanımını göstermek için önceden oluşturulmuş kodumuzu çağıracak bazı kodlar ekleyelim:

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}");
}

Son Program.cs dosyanız şu şekilde görünmelidir:

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;
          }
    }

Programı çalıştırma

Artık uygulamanızı uygulama klasörünüzden kullanarak dotnet run çalıştırabilmeniz gerekir. Çıkış aşağıdakine benzemelidir:

Retrieving new Access Token, using Service Principals
Retrieved Access Token: ey....
Sending SMS using Service Principals
Sms id: Outgoing_..._noam
Send Result Successful: True

Not

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun

Ayarlama

Yeni bir Node.js uygulaması oluşturma

Terminalinizi veya komut pencerenizi açın, uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir active-directory-authentication-quickstart && cd active-directory-authentication-quickstart

Varsayılan ayarlarla bir package.json dosyası oluşturmak için komutunu çalıştırınnpm init -y.

npm init -y

SDK paketlerini yükleme

npm install @azure/communication-identity
npm install @azure/communication-common
npm install @azure/communication-sms
npm install @azure/identity

Yeni dosya oluşturma

Metin düzenleyicisiyle yeni bir dosya açın ve olarak index.jskaydedin. Kodumuzu bu dosyanın içine yerleştireceğiz.

SDK paketlerini kullanma

Azure Kimliği ve Azure Depolama SDK'larını kullanmak için aşağıdaki require yönergeleri en üstüne index.js ekleyin.

const { DefaultAzureCredential } = require("@azure/identity");
const { CommunicationIdentityClient, CommunicationUserToken } = require("@azure/communication-identity");
const { SmsClient, SmsSendRequest } = require("@azure/communication-sms");

DefaultAzureCredential Oluşturma

Bu hızlı başlangıç için DefaultAzureCredential kullanacağız. Bu kimlik bilgisi üretim ve geliştirme ortamları için uygundur. Her işlem için gerektiğinden, bunu dosyamızın index.js en üstünde oluşturalım.

    const credential = new DefaultAzureCredential();

Kimlik oluşturma ve hizmet sorumlularıyla belirteç verme

Ardından, yeni bir kimlik oluşturan ve bu kimlik için belirteç veren bir işlev yazacağız. Bunu daha sonra hizmet sorumlusu kurulumumuzu test etmek için kullanacağız.

async function createIdentityAndIssueToken(resourceEndpoint) {
    const client = new CommunicationIdentityClient(resourceEndpoint, credential);
    return await client.createUserAndToken(["chat"]);
}

Hizmet sorumlularıyla SMS gönderme

Şimdi sms göndermek için hizmet sorumlularını kullanan bir işlev yazalım:

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 işlevini yazma

İşlevlerimiz oluşturulduktan sonra artık bunları çağırmak ve Hizmet Sorumlularının kullanımını göstermek için bir ana işlev yazabiliriz:

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();

Son index.js dosya aşağıdaki gibi görünmelidir:

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();

Programı çalıştırma

Her şey tamamlandıktan sonra, projenizin dizininden girerek node index.js dosyayı çalıştırabilirsiniz. Her şey yolunda gittiyse aşağıdakine benzer bir şey görmeniz gerekir.

    $ 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 için ek önkoşullar

Java için şunları da yapmanız gerekir:

Not

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun

Ayarlama

Yeni java uygulaması oluşturma

Terminalinizi veya komut pencerenizi açın. Java uygulamanızı oluşturmak istediğiniz dizine gidin. Maven-archetype-quickstart şablonundan Java projesi oluşturmak için aşağıdaki komutu çalıştırın.

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

'Oluştur' görevinin ile aynı ada artifactIdsahip bir dizin oluşturduğunu göreceksiniz. Bu dizin altında, src/main/java dizini proje kaynak kodunu içerir, src/test/java directory test kaynağını içerir ve pom.xml dosya projenin Proje Nesne Modeli veya POM'dir.

paketini yükleyin

metin düzenleyicinizde pom.xml dosyasını açın. Aşağıdaki bağımlılık öğesini bağımlılık grubuna ekleyin.

<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 paketlerini kullanma

Azure Kimliği ve Azure İletişim SDK'larını kullanmak için kodunuza aşağıdaki import yönergeleri ekleyin.

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 Oluşturma

Bu hızlı başlangıç için DefaultAzureCredential kullanacağız. Bu kimlik bilgisi üretim ve geliştirme ortamları için uygundur. Her işlem için gerektiğinden sınıfı içinde App.java oluşturalım. Sınıfın en üstüne App.java aşağıdakileri ekleyin.

private TokenCredential credential = new DefaultAzureCredentialBuilder().build();

Hizmet sorumlularıyla belirteç verme

Şimdi bir VoIP Erişim Belirteci vermek için oluşturulan kimlik bilgilerini kullanan kodu ekleyeceğiz. Bu kodu daha sonra çağıracağız;

    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();
    }

Hizmet sorumlularıyla SMS gönderme

Hizmet sorumlularını kullanmanın başka bir örneği olarak, SMS göndermek için aynı kimlik bilgilerini kullanan bu kodu ekleyeceğiz:

     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 yöntemini yazma

Zaten bir Main yönteminiz App.java olmalıdır, şimdi hizmet sorumlularının kullanımını göstermek için önceden oluşturulmuş kodumuzu çağıracak bazı kodlar ekleyelim:

    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());
    }

Finaliniz App.java şu şekilde görünmelidir:

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());
    }
}

Kodu çalıştırma

pom.xml dosyasını içeren dizine gidin ve aşağıdaki mvn komutu kullanarak projeyi derleyin.

mvn compile

Ardından paketi derleyin.

mvn package

Uygulamayı yürütmek için aşağıdaki mvn komutu çalıştırın.

mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false

Son çıkış aşağıdakine benzemelidir:

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

Not

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun

Ayarlama

Yeni Python uygulaması oluşturma

Terminalinizi veya komut pencerenizi açın, uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir active-directory-authentication-quickstart && cd active-directory-authentication-quickstart

SDK paketlerini yükleme

pip install azure-identity
pip install azure-communication-identity
pip install azure-communication-sms

Yeni dosya oluşturma

Oluşturduğunuz klasörün içinde adlı authentication.pyyeni bir dosya açın ve kaydedin. Kodumuzu bu dosyanın içine yerleştireceğiz.

SDK paketlerini kullanma

Yüklediğimiz SDK'ları kullanmak için dosyanızın en üstüne aşağıdaki import deyimleri ekleyin.

from azure.identity import DefaultAzureCredential
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.sms import SmsClient

DefaultAzureCredential Oluşturma

DefaultAzureCredential kullanacağız. Bu kimlik bilgisi üretim ve geliştirme ortamları için uygundur. Bu hızlı başlangıçta kullanacağımız için dosyanın en üstünde oluşturacağız.

     credential = DefaultAzureCredential()

Kimlik oluşturma ve hizmet sorumlularıyla belirteç verme

Şimdi bir VoIP Erişim Belirteci vermek için oluşturulan kimlik bilgilerini kullanan kodu ekleyeceğiz. Bu kodu daha sonra çağıracağız:

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

Hizmet sorumlularıyla SMS gönderme

Hizmet sorumlularını kullanmanın başka bir örneği olarak, SMS göndermek için aynı kimlik bilgilerini kullanan bu kodu ekleyeceğiz:

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
     )

Ana kodumuzu yazın

İşlevlerimiz oluşturulduktan sonra artık daha önce yazdığımız işlevleri çağıracak ana kodu yazabiliriz.

# 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}');

Son authentication.py dosya şuna benzer olmalıdır:

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}');

Programı çalıştırma

Her şey tamamlandıktan sonra, projenizin dizininden girerek python authentication.py dosyayı çalıştırabilirsiniz. Her şey yolunda gittiyse aşağıdakine benzer bir şey görmeniz gerekir.

    $ 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

Sonraki adımlar