
シェア:
Anita Achu is a software engineer, passionate about technical writing. She loves backend technologies and using these technologies to solve problems. Also, she is an ardent believer that rap is the best genre of music.
PythonAnywhere をメッセージ API でデプロイする
所要時間:7 分
アプリケーションをエンドユーザが閲覧し利用できるようにするには、アプリケーションをデプロイしなければなりません。アプリケーションやソフトウェアのデプロイは、最も重要なプロセスの1つである。
デプロイメントには、アプリケーション、アップデート、モジュールなどを開発サーバーから本番サーバーに移動させ、ユーザーがインターネットやイントラネットを介してこのアプリケーションにアクセスできるようにするプロセスが含まれます。
ほとんどのソフトウェア会社や開発者は、手動または自動化されたプロセス、あるいはほとんどの場合、その両方を通じてアプリケーションをデプロイする。関与するプロセスには、ソフトウェアとパッケージのインストール、テスト、ソフトウェアのリリース、配備のための展開が含まれる。
このチュートリアルでは、Vonage Message API を PythonAnywhere 上で本番環境にデプロイすることに焦点を当てます。 Vonage Message APIは SMS、MMS、そして人気のソーシャルチャットアプリと統合されるので、ユーザはどのチャネルを選んでも顧客とコミュニケーションすることができます。API にアクセスするには、Vonage Developer Dashboard でアカウントを作成する必要があります。
まず、PythonAnywhere上でWhatsAppメッセージをユーザーに送信するシンプルなアプリケーションを作成し、その後デプロイします。
必要条件
<sign-up number></sign-up>
PythonAnywhere アカウント(無料または有料)。
システムにインストールされているPythonアプリケーション。
Pythonの基本的な知識。
PythonAnywhereとは?
PythonAnywhereは、Pythonアプリケーションのためのクラウドベースの開発およびホスティング環境です。
このプラットフォームは、pythonウェブアプリケーションとスクリプトの両方をホストするために使用されます。PythonAnywhere はホスティング環境として機能し、開発者は python アプリケーションやスクリプトをコーディング、実行、ホスティングできます。これらの python アプリケーションには、Django、Flask、web2py、Bottle アプリケーションなどがあります。
PythonAnywhereは無料で、初心者に優しく、デフォルトでインストールされた多くのpython拡張機能を提供する。PythonAnywhereのもう一つのユニークな特徴は、Pythonプロジェクトのために明確に構築されていることである。したがって、他のクラウドサービスプロバイダーとは異なり、空のLinuxやUbuntuサーバーは提供されない。
PythonAnywhereのインストール
まず始めに、PythonAnywhere のアカウントを持っていない場合は、次のサイトにアクセスしてください。 https://www.pythonanywhere.com/pricing/にアクセスし、"Beginner account "を作成してください。このアカウントは無料で作成でき、このプロジェクトを実行するのに十分です。フォームに記入してアカウントを作成してください。
ユーザー名は、あなたのウェブサイトのドメイン名となるため、賢く選択する必要があります。 https://www.your-username.pythonanywhere.com.利用規約」に同意し、認証メールが送られてくるのを確認してください。
Bashコンソールの作成
アカウントにログインすると、ダッシュボードに様々なセクションが表示されます。consoles "セクションをクリックし、pythonコンソールとbashコンソールから好きなコンソールを選んでください。このチュートリアルではbashコンソールを使用します。"$ bash "をクリックすると、ブラウザウィンドウにbashコンソールが開きます。

このチュートリアルでは、Vonage API を使って Whatsapp ボットを作成します。を使ってWhatsAppメッセージを送信するシンプルなボットを作成します。 Flask framework.このボットはユーザーの WhatsApp 番号と Vonage 番号を取得する。このボットを作成するために flask ファイルを作成し、インポートを行いますが、その前に Vonage アカウントの設定方法とサンドボックスへの番号追加方法を簡単に説明します。
フラスコは軽量のPython Webアプリケーションフレームワークだ。アプリケーションを作成するために使うことができる
Vonageは、柔軟な音声、メッセージング、ビデオ、コミュニケーションAPIを提供するAPIライブラリです。
Vonage メッセージ API - WhatsApp チャンネル
Vonage Messages API を利用すると、WhatsApp チャンネルを通じてWhatsApp 番号にメッセージを送信することができます。まずVonage APIにアクセスするには、Vonage Developer dashboardでVonage APIアカウントを作成する。その後、Vonage ダッシュボードの上部にAPIを使用するための無料クレジットとAPIキー、APIシークレットが表示されます。最後に、WhatsApp チャンネルを使用するにはサンドボックスを設定する必要があります。
Vonage Sandboxのセットアップ
Vonage Message APIサンドボックスを設定するには、「Messages and Dispatch」をクリックし、続いて「Sandbox」をクリックします。下の画像は表示される画面の例です:

WhatsAppセクションでWhatsAppをサンドボックスに追加。その後、この画面が表示されます。

QRコードをスキャンするか、招待メールをクリックして下さい。リンクはWhatsAppアプリケーションに移動し、Vonage APIが要求する入力フィールドにデフォルトメッセージが含まれます。
下の画像はページの表示例です:

このチュートリアルでは、デフォルトのメッセージは"ジョイン・ウィング・タッキー".このメッセージを送信すると、あなたの番号がサンドボックスのホワイトリストに追加されます。追加したいWhatsApp番号を使って同じテキストを受信者に送信すると、さらに番号を追加できます。
このプロセスが完了したら、アプリケーションを Flaskアプリケーションを whatsapp.py
import requests
import os
from os.path import join, dirname
from dotenv import load_dotenv
import vonage
from vonage import Client
from dotenv import load_dotenv
app = Flask(__name__)
dotenv_path = join(dirname(__file__), "../myapp.env")
load_dotenv(dotenv_path)
client = vonage.Client(
key=os.getenv("VONAGE_API_KEY"), secret=os.getenv("VONAGE_API_SECRET")
)
data= {
"from": {
"type": "whatsapp",
"number": "VONAGE NUMBER",
},
"to": {
"type": "whatsapp",
"number": "YOUR NUMBER" },
"message": {
"content": {
"type": "text",
"text": "Thank you for registering with us. Welcome to Pharm services!"
}
}
}
url = "https://messages-sandbox.nexmo.com/v0.1/messages"
resp = requests.post(url, json=data, auth=(os.getenv("VONAGE_API_KEY"), os.getenv("VONAGE_API_SECRET")))
print (resp)
if __name__ == '__main__':
app.run()上のコードでは、APIライブラリのVonageをインポートした。また、環境変数とClientを呼び出してMessage APIでメッセージを送信するためのPOSTリクエストをインポートした。
注上記の必須項目にVonage番号とあなたの番号を追加し、番号に'+'や'000'を追加しないでください。国番号だけ、例えば "234817542367"。
これが成功したら、ターミナルで python whatsapp.pyを実行する。すると 202という応答が返ってくる。
このチュートリアルでは、このプロジェクトを python3.このバージョンのpythonを使用していることを確認するために、以下のコマンドを実行して、実行しているpythonのバージョンを確認してください:
python --versionバージョン出力がPython 2の場合。で実行するコマンドを更新してください。 python3.
Requirements.txtファイルの追加
A requirements.txtPythonAnywhere にアプリケーションをインストールするには、すべての python パッケージを含む A ファイルが必要です。ここに requirements.txt
argcomplete==1.12.3
boto3==1.17.66
botocore==1.20.66
cachetools==4.2.2
certifi==2020.12.5
cffi==1.14.5
cfn-flip==1.2.3
chardet==4.0.0
click==7.1.2
cryptography==3.4.7
csrf==0.1b1
Deprecated==1.2.12
dialogflow==1.1.0
durationpy==0.5
Flask==1.1.2
future==0.18.2
google-api-core==1.26.3
google-auth==1.30.0
googleapis-common-protos==1.53.0
grpcio==1.37.1
hjson==3.0.2
idna==2.10
itsdangerous==1.1.0
Jinja2==2.11.3
jmespath==0.10.0
jwt==1.2.0
kappa==0.6.0
MarkupSafe==1.1.1
packaging==20.9
pep517==0.10.0
pip-tools==6.1.0
placebo==0.9.0
protobuf==3.15.8
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.20
PyJWT==2.1.0
pyparsing==2.4.7
python-dateutil==2.8.1
python-dotenv==0.17.1
python-slugify==5.0.0
pytz==2021.1
PyYAML==5.4.1
requests==2.25.1
rsa==4.7.2
s3transfer==0.4.2
six==1.15.0
text-unidecode==1.3
toml==0.10.2
tqdm==4.60.0
troposphere==2.7.1
urllib3==1.26.4
vonage==2.5.5
Werkzeug==0.16.1
wrapt==1.12.1
wsgi-request-logger==0.4.6
zappa==0.52.0PythonAnywhere bash コンソールで nanoテキストエディタを使います。次のステップは whatsapp.pyと requirements.txtを PythonAnywhere アカウントに追加します。コードをコピーしてクリップボードに貼り付けるのが最適です。次にテキストエディタを使用して bash コンソールを開きます:
このコード行でnanoエディターに移動し、以下のコードをペーストする。 [whatsapp.py](http://whatsapp.py)ファイルに貼り付ける。その後 Ctrl-Xそして 'はい'を入力してエディターを終了し、変更を保存します。
同じプロセスを requirements.txt
以上の手順で、コードをローカルマシンから PythonAnywhere に移動し、ホストすることができました。
仮想環境の構築
まず、仮想環境を作成することから始めます。仮想環境がシステムにインストールされていることを確認してください。 を実行します。 **pip** *コマンドを実行します。
インストールが完了したら virtual envがインストールされたら、仮想環境の作成とアクティベーションに進みます。
virtualenv env以下のコマンドを実行して仮想環境をアクティブにする:
source env/bin/activate仮想環境が起動したら、このプロジェクトに必要なパッケージをインストールします。 requirements.txtファイルにあるように:
では、PythonAnywhereでWebアプリケーションを作ってみましょう。
まず、ナビゲーション・バーの「ウェブ」をクリックする。次に「新しいウェブアプリを追加」をクリックする。
PythonAnywhereの有料アカウントを持っていて、カスタムドメイン名を使用できる場合を除き、PythonAnywhereはあなたのために "your username.pythonanywhere.com "というフォーマットでドメインを作成します。
Next "ボタンをクリックして次に進む。

もう一度、"Next "をクリックする。次のページで、このプロジェクトで使用する Python Web フレームワークを選択します。このアプリケーションは Flask で書かれていますが、WSGI 互換のすべてのフレームワークで動作するので、Manual の設定を使用します。

をクリックしてください。手動設定をクリックします。次へ'.次のページでpythonのバージョンを選択します。私は"Python 3.8",次に "**Next "をクリックします。
次のページでは、手動設定について説明します。Next "をクリックして、シンプルな "Hello World "アプリケーションでWSGIファイルを作成します。
その後、次のページはウェブ・アプリケーションの詳細を含む最後の設定ページです。シンプルな "Hello World "アプリケーションが作成されました。
ウェブブラウザで新しいタブを開いてください。次のURLを追加します:"<your_username>.pythonanywhere.com".このURLで、アプリケーションのデプロイが成功したかどうかを確認できます。表示されるページは以下の例のようになります:

Virtualenv設定の追加
PythonAnywhereのページで、"Virtualenv "セクションに移動し、仮想環境の場所を設定します。Enter path to a virtualenv "をクリックし、/ を追加します。を追加する。と入力する。と入力する。 /home/messageapi/env
コンフィギュレーションWSGIの設定
設定ページには、"Code" というセクションがあります。Codeの下のWSGI設定ファイルには、PythonAnywhereによって追加されたWSGI設定ファイルのパスがあります。

WSGI設定ファイルをメモするか、パスをクリップボードにコピーしてください。ナビゲーションバーの "Consoles "をクリックした後、"Your consoles "セクションの下にあるbashコンソールをクリックしてください。次に表示されるのがbashセッションです。
テキストエディタでWSGI設定ファイルを開き、コピーしたパスを追加する:
PythonAnywhere はいくつかの指示を含む長いテンプレートファイルを生成します。それでも、このチュートリアルでは、このファイルの内容を削除して、以下のPythonコードに置き換える必要があります:
各行の先頭で Ctrl+kを押して削除する。
で指定された変数 "app**"**の名前を "application "に変更し、インポートする。 whatsapp.pyを "application "にリネームしてインポートします。Flask システムによってエクスポートされた WSGI アプリケーションはこの変数を格納します。PythonAnywhere は "application" というフルネームでアクセスします。
アプリケーションのリロード
これらの変更を行ったら、WSGI設定ファイルを保存する。それから 「Web"に戻り、"Reload" をクリックします。 "Reload"ボタンをクリックします。
接続URL
Vonage "メッセージAPIサンドボックス"ページで、"までスクロールします。このセクションで、Webhook の URL を入力します。このURLは、PythonAnywhereのURLの後に、Webhookへの/whatsappルートが続く構成になっています。URLは一般的に http://<your-username>.pythonanywhere.com/botの形式となります。以下のようになります:

ウェブフックを保存します。それでは、アプリケーションを実行してみましょう。
ボットとチャット
このステップでは、顧客にメッセージを送信するアプリケーションを作成できます。顧客があなたのサイトに登録すると、PythonAnywhere上で実行されているボットのエンドポイントにリクエストが送信されます。
例を挙げよう:

結論
このチュートリアルでは、PythonAnywhere 上で Vonage Message API を本番環境にデプロイする方法を学びました。これらのガイドラインが参考になれば幸いです。Message API 以外にも、Vonage にはあなたのアプリケーションで使えるいくつかの製品があります。
PythonAnywhere を使い続けたい場合は、制限のない有料アカウントにアップグレードできます。特にPythonAnywhereでは、無料のアプリケーションは3ヶ月ごとに手動で確認することができます。
また、VonageアプリケーションをHerokuやその他のデプロイメント・プラットフォームにデプロイすることもできます。ハッピーコーディング!