
シェア:
Vonageのデベロッパー・アドボケイト、作家、ストーリーテラー。AI/ML、ユニファイド・コミュニケーション、教育技術、クラウド技術、オープンソースに関心を持つ。
Python、Flask、VonageでSMSメッセージを送信する方法
所要時間:16 分
今日、ほとんどの人がSMSを使っている。テキストメッセージは、友人とチャットしたり、重要な最新情報を入手したり、2FAのような基本的なセキュリティタスクを処理したりするシンプルで便利な方法を提供します。もしあなたが開発者なら、Pythonは同じようなシンプルさと利便性を提供し、世界で最も人気のあるプログラミング言語の1つとなっている。
では、この2つの方法を一緒にして、Pythonを使ってSMSメッセージを送るのはどうだろう?
このチュートリアルでは、PythonとFlaskを使ってSMSを送信する方法を紹介します。アプリケーションを作成するための優れた出発点となる小さなコードサンプルを用意しました。
Vonage API アカウント
Python SMSアプリを作成するには、Vonage APIアカウントが必要です。Vonage Messages API を使うには メッセージ APIを使うには アプリケーションを作成する必要があります。
開く API設定.API keysタブの下に、APIキーとAccount secret(APIシークレット)があります。これらの認証情報は後で使用します。
Vonage Application Settings
Vonage Python SDKのインストール
まず、ラップトップ/サーバーに Python 3がインストールされていることを確認してください。その後、venv を使って必要なパッケージだけの隔離された環境を作ります。
インストール virtualenvpip 経由で。
仮想環境を作る
仮想環境をアクティブにする
インストール Vonage Python SDK
Python言語シェルREPLの実行
インポート Vonage Python SDK
再利用可能で、Vonage API キーとその秘密を知っている Vonage Client オブジェクトを作成します。
使用方法 send_message methodを使ってSMSを送信します。Vonage API "を関連するSender ID (SMS送信者名)に置き換えることができます。
期待される出力
以下の情報を解析できる辞書を受け取る:メッセージは正常に送信されたか?ステータス":"0 "は、すべて正常であることを意味します。SMSは何通に分割されましたか?メッセージの送信にいくらかかりましたか?SMSのシンボル数と受信者の国によって異なります。
携帯電話の通知を確認すると、SMSメッセージが届いているはずです。そうでない場合は、応答内容を確認してください。
Screenshot of an SMS message sent with the Vonage SMS API
SMS配信の監視とトラブルシューティングは、Vonage APIダッシュボード Vonage APIダッシュボード
PythonとFlaskでSMS送信者を作成する
FlaskとPythonを使って、SMSを送信する小さなWebアプリケーションを作ってみましょう。このアプリケーションには、電話番号とSMSメッセージを入力するフォームが必要です。ユーザが "Send SMS" を押すと、Vonage SMS API を使って SMS を送信する 2 番目のビューに投稿されます。server.py ファイルを作成し、関連するコードをそこに貼り付けます。
from dotenv import load_dotenv
from flask import Flask, flash, redirect, render_template, request, url_for
import vonage
from os import environ as env
# Load environment variables from a .env file:
load_dotenv('.env')
# Load in configuration from environment variables:
VONAGE_API_KEY = env['VONAGE_API_KEY']
VONAGE_API_SECRET = env['VONAGE_API_SECRET']
VONAGE_NUMBER = env['VONAGE_NUMBER']
# Create a new Vonage Client object:
client = vonage.Client(
key=VONAGE_API_KEY, secret=VONAGE_API_SECRET
)
# Initialize Flask:
app = Flask(__name__)
app.config['SECRET_KEY'] = env['FLASK_SECRET_KEY']
@app.route('/')
def index():
""" A view that renders the Send SMS form. """
return render_template('index.html')
@app.route('/send_sms', methods=['POST'])
def send_sms():
""" A POST endpoint that sends an SMS. """
# Extract the form values:
to_number = request.form['to_number']
message = request.form['message']
# Send the SMS message:
result = client.sms.send_message({
'from': VONAGE_NUMBER,
'to': to_number,
'text': message,
})
# Redirect the user back to the form:
return redirect(url_for('index'))でテンプレートを作成してみましょう。 templates/index.html次のHTMLは、Bootstrap CSSフレームワークを含み、2つのフィールドを持つフォームをレンダリングします: to_number送信先の電話番号と messageユーザーがSMSメッセージを入力できるようにします。
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>Send an SMS</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-3.5.0.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.14.7/dist/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<div class="container">
<h1>Send an SMS</h1>
<form action="/send_sms" method="POST">
<div class="form-group"><label for="destination">Phone Number</label>
<input id="to_number" class="form-control" name="to_number" type="tel" placeholder="Phone Number" /></div>
<div class="form-group"><label for="message">Message</label>
<textarea id="message" class="form-control" name="message" placeholder="Your message goes here"></textarea></div>
<button type="submit" class="btn btn-primary">Send SMS</button>
</form>
</div>
</body>
</html>
このチュートリアルでは、python-dotenv ライブラリを使って .envファイルをロードします。サーバを起動する前に、設定を .envファイルで設定する必要があります。以下から始めて、詳細を記入してください:
作成する requirements.txtを作成し、関連する依存関係を このファイル
以下のコマンドでアプリを起動する。
オープン http://localhost:5000/をブラウザで開き、"Send an SMS Using the Python Application "の章に移動します。
コードソースからのデプロイ
あるいは、用意されたコード・サンプルを使ってアプリケーションをデプロイすることもできる。アプリケーションをデプロイするには、レポジトリをクローンする必要があります。 gitを使用してリポジトリをクローンし .envを更新します。
ソースコードをクローンする。
プロジェクトフォルダーに移動する。
依存関係をインストールします。
以下のコマンドでアプリを起動する。
期待される出力
次に http://localhost:5000/をブラウザで開くと、次のウェブページが表示されます。
Pythonアプリケーションを使ってSMSを送信する
Python App for Sending SMS Using Vonage Python SDK
このインターフェイスを使ってSMSを送信してみましょう。Numbersが国際形式であることを確認してください。SMSを送信 "をクリックし、携帯電話を確認してください!このアプリケーションのソースコードは こちら.
まとめ
おめでとうございます!これでSMSを送信するアプリケーションができました。また Vonage メッセージ APIを使用して、Viber Business Messages、Facebook Messenger、WhatsApp でメッセージを送信することもできます。
私たちにできることをお知らせください!私たちの VonageコミュニティSlackまたは ツイッター.


