次の方法で共有


Python 用 Azure Communication SMS パッケージ クライアント ライブラリ - バージョン 1.0.1

このパッケージには、SMS 用の python SDK for Azure Communication Servicesが含まれています。 Azure Communication Servicesの詳細については、こちらを参照してください

ソース コード | パッケージ (Pypi) | API リファレンス ドキュメント | 製品ドキュメント

作業の開始

前提条件

  • このパッケージを使用するには、Python 2.7 または3.6 以降が必要です。
  • デプロイ済みの Communication Services リソース。 Azure Portal またはAzure PowerShellを使用して設定できます。
  • Azure サブスクリプションに関連付けられている電話番号が構成されている必要があります

パッケージをインストールする

pip を使用して Python 用 Azure Communication SMS クライアント ライブラリをインストールします。

pip install azure-communication-sms

主要な概念

Azure Communication SMS パッケージは、次の操作を行うために使用されます。

  • 1:1 の SMS メッセージを送信する
  • 1:N の SMS メッセージを送信する

次のセクションでは、次のような最も一般的なAzure Communication Services タスクをいくつか取り上げて、いくつかのコード スニペットを示します。

クライアントの初期化

SMS クライアントを初期化するために、接続文字列を使用してインスタンス化できます。 または、DefaultAzureCredential を使用して Active Directory 認証を使用することもできます。

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

connection_str = "endpoint=ENDPOINT;accessKey=KEY"
sms_client = SmsClient.from_connection_string(connection_string)

# To use Azure Active Directory Authentication (DefaultAzureCredential) make sure to have
# AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET as env variables.
endpoint = "https://<RESOURCE_NAME>.communication.azure.com"
sms_client = SmsClient(endpoint, DefaultAzureCredential())

1:1 の SMS メッセージを送信する

クライアントが初期化されると、 メソッドを send 呼び出すことができます。

from azure.communication.sms import SendSmsOptions

sms_responses = sms_client.send(
    from_="<from-phone-number>",
    to="<to-phone-number-1>",
    message="Hello World via SMS",
    enable_delivery_report=True, # optional property
    tag="custom-tag") # optional property
  • from_: 通信サービスに関連付けられている SMS 対応の電話番号。
  • to: メッセージを送信する電話番号または電話番号の一覧。
  • message: 送信するメッセージ。
  • enable_delivery_report: 配信レポートの構成に使用できる省略可能なパラメーター。 これは、SMS メッセージが配信されたときにイベントを生成する場合に便利です。
  • tag: カスタム タグ付けを構成するために使用できる省略可能なパラメーター。

1:N の SMS メッセージを送信する

クライアントが初期化されると、 メソッドを send 呼び出すことができます。

from azure.communication.sms import SendSmsOptions

sms_responses = sms_client.send(
    from_="<from-phone-number>",
    to=["<to-phone-number-1>", "<to-phone-number-2>", "<to-phone-number-3>"],
    message="Hello World via SMS",
    enable_delivery_report=True, # optional property
    tag="custom-tag") # optional property
  • from_: 通信サービスに関連付けられている SMS 対応の電話番号。
  • to: メッセージを送信する電話番号または電話番号の一覧。
  • message: 送信するメッセージ。
  • enable_delivery_report: 配信レポートの構成に使用できる省略可能なパラメーター。 これは、SMS メッセージが配信されたときにイベントを生成する場合に便利です。
  • tag: カスタム タグ付けを構成するために使用できる省略可能なパラメーター。

トラブルシューティング

SMS 操作は、サーバーへの要求が失敗した場合に例外をスローします。 SMS クライアントは、 Azure Core で定義されている例外を発生させます。 エラーが個々のメッセージによって発生した場合、要求全体で何かが失敗した場合にのみ、例外はスローされません。 成功したフラグを使用して個々の結果を検証し、メッセージが送信されたかどうかを確認してください。

try:
    sms_responses = sms_client.send(
        from_="<leased-phone-number>",
        to=["<to-phone-number-1>", "<to-phone-number-2>", "<to-phone-number-3>"],
        message="Hello World via SMS")
        
    for sms_response in sms_responses:
        if (sms_response.successful):
            print("Message with message id {} was successful sent to {}"
            .format(sms_response.message_id, sms_response.to))
        else:
            print("Message failed to send to {} with the status code {} and error: {}"
            .format(sms_response.to, sms_response.http_status_code, sms_response.error_message))
except Exception as ex:
    print('Exception:')
    print(ex)

次のステップ

その他のサンプル コード

このライブラリを使用して SMS を送信する方法の詳細な例については、 サンプル ディレクトリを参照してください。

フィードバックの提供

バグが発生した場合、または提案がある場合は、プロジェクトの [問題 ] セクションに問題を提出してください

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、 https://cla.microsoft.com を参照してください。

pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。