Hướng dẫn twilio python voice call - cuộc gọi thoại trăn twilio

Chỉ với một vài dòng mã, ứng dụng Python của bạn có thể thực hiện và nhận các cuộc gọi điện thoại với giọng nói có thể lập trình Twilio.

Python QuickStart này sẽ dạy bạn cách thực hiện việc này bằng API REST của chúng tôi, Thư viện Helper Twilio Python và MicroframeWork của Python, để giảm bớt sự phát triển.

Trong bản khởi động nhanh này, bạn sẽ học cách:

  1. Đăng ký Twilio và nhận số điện thoại Twilio hỗ trợ giọng nói đầu tiên của bạn
  2. Thiết lập môi trường phát triển của bạn để thực hiện và nhận các cuộc gọi điện thoại
  3. Thực hiện một cuộc gọi điện thoại bên ngoài chơi mp3
  4. Nhận và trả lời một cuộc gọi điện thoại trong nước đọc tin nhắn cho người gọi bằng văn bản để nói

Thích bắt đầu bằng cách xem video? Kiểm tra video của chúng tôi về cách đặt và nhận các cuộc gọi điện thoại với Python trên YouTube.

Chỉ cho tôi cách nó đã hoàn thành!

Đăng ký Twilio và nhận số điện thoại

Nếu bạn đã có tài khoản Twilio và số điện thoại Twilio hỗ trợ giọng nói, bạn đã đặt ở đây! Đăng nhập sau đó cảm thấy thoải mái để nhảy sang bước tiếp theo.

Trước khi bạn có thể gọi điện thoại từ Python, bạn sẽ cần một tài khoản Twilio. Đăng ký tại đây để nhận tài khoản dùng thử miễn phí hoặc đăng nhập vào tài khoản bạn đã có.

Điều tiếp theo bạn cần là số điện thoại Twilio có khả năng giọng nói. Nếu bạn hiện không sở hữu số điện thoại Twilio có chức năng gọi thoại, bạn sẽ cần mua một số. Sau khi điều hướng đến trang Mua một số, hãy kiểm tra hộp "Voice" và nhấp vào "Tìm kiếm".

Hướng dẫn twilio python voice call - cuộc gọi thoại trăn twilio

Sau đó, bạn sẽ thấy một danh sách các số điện thoại có sẵn và khả năng của chúng. Tìm một số phù hợp với sở thích của bạn và nhấp vào "Mua" để thêm nó vào tài khoản của bạn.

Hướng dẫn twilio python voice call - cuộc gọi thoại trăn twilio

Bây giờ bạn có tài khoản Twilio và số điện thoại có thể lập trình, bạn có các công cụ cơ bản bạn cần để gọi điện thoại.

Bạn có thể sử dụng API HTTP của Twilio để thực hiện các cuộc gọi điện thoại của mình, nhưng chúng tôi sẽ làm cho mọi thứ trở nên đơn giản hơn bằng cách sử dụng thư viện Python Helper chính thức của Twilio. Hãy cài đặt nó tiếp theo.

Đưa tôi qua thiết lập.

Cài đặt Python và Thư viện trợ giúp Twilio

Nếu bạn đã trải qua một trong những lần khởi động nhanh Python của chúng tôi và đã cài đặt Python và Twilio Python Helper được cài đặt, bạn có thể bỏ qua bước này và thẳng thắn để thực hiện cuộc gọi điện thoại đầu tiên của bạn.

Để thực hiện cuộc gọi điện thoại đầu tiên của bạn với Twilio, bạn sẽ cần phải cài đặt Python và Twilio Python Helper được cài đặt.

Cài đặt Python

Nếu bạn sử dụng máy Mac hoặc Linux, có lẽ bạn đã cài đặt Python. Bạn có thể kiểm tra điều này bằng cách mở một thiết bị đầu cuối và chạy lệnh sau:

Bạn sẽ thấy một cái gì đó như:

$ python --version
Python 3.9  # Python 3.6+ is okay, too

Người dùng Windows có thể làm theo hướng dẫn tuyệt vời này để cài đặt Python trên Windows.

Twilio sườn Python SDK chỉ hỗ trợ Python 3.6+.

Cài đặt Thư viện trợ giúp Twilio Python

Cách dễ nhất để cài đặt thư viện là sử dụng PIP. Chỉ cần chạy cái này trong thiết bị đầu cuối:

Nếu bạn gặp lỗi

3, bạn có thể sử dụng 
4 để cài đặt thư viện Twilio Helper bằng cách chạy điều này trong thiết bị đầu cuối của bạn:

Để cài đặt thủ công, bạn có thể tải xuống mã nguồn (ZIP) cho Twilio-Python và sau đó cài đặt thư viện bằng cách chạy:

Trong thư mục chứa thư viện Twilio-Python.

Và với điều đó, đã đến lúc viết một số mã.

Tất cả các thiết lập! Hãy gọi điện thoại đó.

Gọi điện thoại đi với Python

Bây giờ chúng tôi đã cài đặt Python và

5, chúng tôi có thể thực hiện một cuộc gọi điện thoại gửi đi với một yêu cầu API duy nhất từ ​​số điện thoại Twilio mà chúng tôi vừa mua. Tạo một tệp mới có tên 
6 và nhập hoặc dán vào mẫu mã này.

Bạn đang xem một phiên bản lỗi thời của SDK này.

Mã này bắt đầu một cuộc gọi điện thoại giữa hai số điện thoại mà chúng tôi truyền dưới dạng đối số. Số 'từ' là số Twilio của chúng tôi và số 'đến' là người chúng tôi muốn gọi.

Đối số URL chỉ ra một số Twiml, cho Twilio phải làm gì tiếp theo khi người nhận của chúng tôi trả lời điện thoại của họ. Twiml này bảo Twilio đọc một tin nhắn bằng văn bản để nói và sau đó chơi mp3.

Tuy nhiên, trước khi mã này sẽ hoạt động, chúng tôi cần chỉnh sửa nó một chút để làm việc với tài khoản Twilio của bạn.

Thay thế các giá trị thông tin xác thực giữ chỗ

Trao đổi các giá trị giữ chỗ cho

7 và 
8 với thông tin đăng nhập Twilio cá nhân của bạn.

Truy cập https://www.twilio.com/console và đăng nhập. Trên trang này, bạn sẽ tìm thấy tài khoản độc đáo của mình Sid và Auth Token, mà bạn sẽ cần bất cứ khi nào bạn gửi tin nhắn qua Client Client như thế này. Bạn có thể tiết lộ mã thông báo Auther của mình bằng cách nhấp vào biểu tượng nhãn cầu:

Hướng dẫn twilio python voice call - cuộc gọi thoại trăn twilio

Mở

6 và thay thế các giá trị cho 
7 và 
8 bằng các giá trị duy nhất của bạn.

Xin lưu ý: Không sao khi mã hóa thông tin đăng nhập của bạn khi bắt đầu, nhưng bạn nên sử dụng các biến môi trường để giữ bí mật trước khi triển khai để sản xuất. Kiểm tra cách đặt các biến môi trường để biết thêm thông tin.

Thay thế các số điện thoại đến và từ_

Hãy nhớ rằng số điện thoại hỗ trợ giọng nói mà bạn đã mua chỉ vài phút trước? Đi trước và thay thế số

easy_install-2.7 virtualenv
2 hiện tại bằng số đó, đảm bảo sử dụng định dạng E.164:

easy_install-2.7 virtualenv
3

Tiếp theo, thay thế số điện thoại

easy_install-2.7 virtualenv
4 bằng số điện thoại di động của bạn. Đây có thể là bất kỳ số điện thoại nào có thể nhận cuộc gọi, nhưng đó là một ý tưởng tốt để kiểm tra với điện thoại của bạn để bạn có thể thấy phép thuật xảy ra! Như trên, bạn nên sử dụng định dạng E.164 cho giá trị này.

Lưu các thay đổi của bạn và chạy tập lệnh từ thiết bị đầu cuối của bạn:

Đó là nó! Điện thoại của bạn sẽ gọi điện với một cuộc gọi từ số Twilio của bạn và bạn sẽ nghe thấy tin nhắn ngắn của chúng tôi cho bạn. 😉

Tiếp theo, chúng tôi sẽ học cách trả lời một cuộc gọi được thực hiện với số điện thoại Twilio của bạn. Đầu tiên, chúng tôi sẽ cần phải có một máy chủ Flask lên và chạy.

Đi nào!

Cài đặt bình và thiết lập môi trường phát triển của bạn

Để xử lý các cuộc gọi điện thoại đến, chúng tôi sẽ cần một ứng dụng web nhẹ để chấp nhận các yêu cầu HTTP đến từ Twilio. Chúng tôi sẽ sử dụng Flask cho QuickStart này, nhưng bạn có thể sử dụng sự lựa chọn của bạn về khung web để thực hiện và nhận các cuộc gọi điện thoại từ các ứng dụng của bạn.

Để biết hướng dẫn về thiết lập bình trên Windows, hãy xem hướng dẫn này.

Cài đặt PIP và VirtualenV

Để cài đặt bình và thiết lập môi trường phát triển của chúng tôi, chúng tôi sẽ cần hai công cụ: PIP để cài đặt Flask và VirtualEnv để tạo một hộp cát độc đáo cho dự án này. Nếu bạn đã cài đặt các công cụ này, bạn có thể bỏ qua phần tiếp theo.

PIP được đóng gói sẵn với Python 3,4+, vì vậy nếu bạn có một phiên bản Python gần đây, bạn không cần phải cài đặt bất cứ điều gì mới. Nếu bạn ở trên một phiên bản trước đó, đừng bao giờ sợ: PIP được đưa vào VirtualEnv. Vì vậy, hãy để cài đặt Virtualenv!

Nếu bạn sử dụng Python 2.4, hãy chạy lệnh sau trong thiết bị đầu cuối của bạn:Python 2.4, run the following command in your terminal:

Nếu bạn sử dụng Python 2.5-2.7, hãy chạy lệnh sau trong thiết bị đầu cuối của bạn, chỉ định số phiên bản của bạn:Python 2.5-2.7, run the following command in your terminal, specifying your version number:

easy_install-2.7 virtualenv

Thay thế 2.7 bằng 2.5 hoặc 2.6 nếu bạn đã cài đặt phiên bản đó.2.7 with 2.5 or 2.6 if you have that version installed.

Để cài đặt VirtualEnv với Python 3.4+:3.4+:

# If you get 'permission denied' errors try running "sudo python" instead of "python"
pip install virtualenv

Nếu bạn nhận được bất kỳ lỗi nào trong bước này, hãy xem các mẹo này để gỡ lỗi.

Tạo và kích hoạt môi trường ảo của bạn

Khi bạn đã cài đặt VirtualENV, hãy sử dụng thiết bị đầu cuối của mình để điều hướng đến thư mục bạn sử dụng cho bản khởi động nhanh này và tạo môi trường ảo:

cd Documents/my_quickstart_folder
virtualenv --no-site-packages .

Bây giờ, kích hoạt môi trường ảo:

Bạn có thể xác minh rằng ảo của bạn đang chạy bằng cách xem thiết bị đầu cuối của bạn: bạn sẽ thấy tên của thư mục kèm theo của bạn. Nó sẽ trông giống như thế này:

(my_quickstart_folder)USER:~ user$

Để tìm hiểu thêm về VirtualEnv hoặc tạo đường dẫn môi trường tùy chỉnh, hãy xem hướng dẫn kỹ lưỡng này.

Cài đặt phụ thuộc

Bây giờ chúng tôi đã sẵn sàng để cài đặt bình. Tạo một tệp có tên

easy_install-2.7 virtualenv
5 và thêm các dòng sau vào nó:

Flask>=0.12
twilio~=6.0.0

Sau đó cài đặt cả hai gói này với PIP trong thiết bị đầu cuối của bạn:

pip install -r requirements.txt

Kiểm tra mọi thứ từ đầu

Đầu tiên, hãy đảm bảo VirtualEnv của bạn được kích hoạt:

cd Documents/my_quickstart_folder
source bin/activate     # On Windows, use .\bin\activate.bat

Sau đó, tạo và mở một tệp có tên

easy_install-2.7 virtualenv
6 và thêm các dòng sau:

Bạn đang xem một phiên bản lỗi thời của SDK này.

Kiểm tra thiết lập của bạn với ứng dụng đĩa "Hello, World" đơn giản này

Bây giờ là lúc để thử chạy nó. Trong thiết bị đầu cuối của bạn, loại:

Bạn nên thấy:

0

Điều hướng đến http: // localhost: 5000 trong trình duyệt của bạn. Bạn sẽ thấy một "Hello World!" thông điệp. Bạn đã sẵn sàng để tạo ứng dụng Voice lập trình Twilio đầu tiên của bạn!

Tất cả các thiết lập. Làm thế nào để Twilio nói chuyện với ứng dụng mới của tôi?

Cho phép Twilio nói chuyện với ứng dụng bình của bạn

Chúng tôi sắp nâng cao ứng dụng bình nhỏ của chúng tôi để chấp nhận các cuộc gọi điện thoại đến. Nhưng trước khi chúng tôi làm điều đó, chúng tôi cần đảm bảo Twilio có thể nói chuyện với môi trường phát triển địa phương của chúng tôi.

Hầu hết các dịch vụ Twilio sử dụng webhooks để liên lạc với ứng dụng của bạn. Ví dụ, khi Twilio nhận được một cuộc gọi điện thoại, nó sẽ tiếp cận với một URL trong ứng dụng của bạn để được hướng dẫn về cách xử lý cuộc gọi.

Khi bạn làm việc trên ứng dụng bình trong môi trường phát triển của mình, ứng dụng của bạn chỉ có thể truy cập được bởi các chương trình khác trên máy tính của bạn và Twilio won có thể nói chuyện với nó. Chúng tôi cần giải quyết vấn đề này bằng cách làm cho ứng dụng của bạn có thể truy cập được qua Internet.

Mặc dù có rất nhiều cách để làm điều này, như triển khai ứng dụng của bạn cho Heroku hoặc AWS, nhưng có lẽ bạn sẽ muốn có một cách ít tốn nhiều công sức để kiểm tra ứng dụng Twilio của mình. Để biết một cách nhẹ để cung cấp ứng dụng của bạn trên internet, chúng tôi khuyên bạn nên sử dụng một công cụ có tên Ngrok. Sau khi bắt đầu, NgROK cung cấp một URL duy nhất trên miền Ngrok.io chuyển tiếp các yêu cầu đến đến môi trường phát triển địa phương của bạn.

Hướng dẫn twilio python voice call - cuộc gọi thoại trăn twilio

Nếu bạn không sử dụng Ngrok, hãy truy cập trang tải xuống của họ và lấy nhị phân phù hợp cho hệ điều hành của bạn. Sau khi tải xuống, giải nén gói.

Nếu bạn đang làm việc trên Mac hoặc Linux, bạn đã sẵn sàng. Nếu bạn đang ở trên Windows, hãy làm theo hướng dẫn của chúng tôi về cách cài đặt và định cấu hình NGROK trên Windows. Để biết thêm thông tin về NGROK, bao gồm một số mẹo và thủ thuật tuyệt vời, hãy xem bài đăng trên blog chuyên sâu này.

Sau khi tải xuống, hãy bắt đầu ứng dụng Hello World mà chúng tôi đã thực hiện trước đây:

Ứng dụng cục bộ của bạn phải chạy tại địa phương để Ngrok thực hiện phép thuật của nó.must be running locally for ngrok to do its magic.

Sau đó mở một tab hoặc cửa sổ đầu cuối mới và bắt đầu Ngrok với lệnh này:

Nếu máy chủ cục bộ của bạn đang chạy trên một cổng khác, hãy thay thế 5000 bằng số cổng chính xác.

Bạn sẽ thấy đầu ra tương tự như thế này:

Hướng dẫn twilio python voice call - cuộc gọi thoại trăn twilio

Sao chép URL công khai của bạn từ đầu ra này và dán nó vào trình duyệt của bạn. Bạn sẽ xem "Hello World World!" Của ứng dụng Flask của bạn của bạn! thông điệp.

Máy chủ của tôi có thể truy cập công khai. Dạy tôi cách nhận các cuộc gọi điện thoại!

Trả lời các cuộc gọi đến với Twilio

Khi số Twilio của bạn nhận được một cuộc gọi điện thoại đến, nó sẽ gửi yêu cầu HTTP đến máy chủ của bạn yêu cầu hướng dẫn về những việc cần làm tiếp theo. Khi bạn nhận được yêu cầu, bạn có thể nói với Twilio cách trả lời cuộc gọi.

Đối với bản khởi động nhanh này, chúng tôi sẽ trả lời ứng dụng Flask để trả lời cuộc gọi điện thoại và nói một tin nhắn ngắn cho người gọi. Mở lại

easy_install-2.7 virtualenv
6 và cập nhật mã để trông giống như mẫu mã này:

Bạn đang xem một phiên bản lỗi thời của SDK này.

Trả lời yêu cầu đến từ Twilio với hướng dẫn về cách xử lý cuộc gọi

Lưu tệp và khởi động lại ứng dụng của bạn với

Bây giờ bạn có thể mở một trình duyệt web đến http: // localhost: 5000/câu trả lời. Nếu bạn xem mã nguồn trang, bạn sẽ thấy văn bản sau:

2

Mã nguồn này là Twiml XML được tạo bởi mã của bạn với sự trợ giúp của thư viện Twilio Helper.

Kiểm tra kỹ rằng NgROK vẫn đang chạy trên localhost với cùng một cổng như trước đây. Bây giờ Twilio sẽ có thể tìm thấy ứng dụng của bạn. Chỉ có một điều cuối cùng chúng tôi cần trước khi chúng tôi sẵn sàng gọi ứng dụng của bạn: chúng tôi cần nói với Twilio nơi để gửi yêu cầu của nó.

Định cấu hình URL Webhook của bạn

Để Twilio biết nơi để xem, bạn cần định cấu hình số điện thoại Twilio của mình để gọi URL webhook của bạn bất cứ khi nào một tin nhắn mới xuất hiện.

  1. Đăng nhập vào Twilio.com và truy cập trang số của bảng điều khiển.
  2. Nhấp vào số điện thoại hỗ trợ giọng nói của bạn.
  3. Tìm phần "Voice & Fax". Đảm bảo lựa chọn "chấp nhận đến" được đặt thành "cuộc gọi thoại". "Cấu hình với" lựa chọn mặc định là những gì bạn cần: "Webhooks/Twiml ...".
  4. Trong phần "Một cuộc gọi có trong", chọn "Webhook" và dán vào URL bạn muốn sử dụng, thêm tuyến đường '/trả lời' của bạn:
Hướng dẫn twilio python voice call - cuộc gọi thoại trăn twilio

Lưu các thay đổi của bạn - bạn đã sẵn sàng!

Kiểm tra ứng dụng của bạn

Miễn là các máy chủ Localhost và Ngrok của bạn đang hoạt động, chúng tôi đã sẵn sàng cho phần thú vị - thử nghiệm ứng dụng bình mới của chúng tôi!

Gọi điện thoại từ điện thoại di động của bạn đến số điện thoại Twilio của bạn. Bạn sẽ thấy một yêu cầu HTTP trong bảng điều khiển NgROK của bạn. Ứng dụng Flask của bạn sẽ xử lý yêu cầu đến và trả lời với Twiml của bạn. Sau đó, bạn sẽ nghe tin nhắn của bạn khi cuộc gọi kết nối.

Nó đã làm việc! Tất cả đã hoàn thành - Điều gì tiếp theo?

Tiếp theo là đâu?

Bây giờ bạn đã biết những điều cơ bản của việc thực hiện và trả lời các cuộc gọi điện thoại với Python.

Ứng dụng Flask của chúng tôi ở đây chỉ sử dụng động từ Twiml để đọc thông báo cho người gọi bằng văn bản để nói, nhưng bạn có thể làm nhiều hơn với các động từ Twiml khác nhau như, và.

Kiểm tra các trang này để tìm hiểu thêm:

Chúng tôi không thể chờ đợi để xem những gì bạn xây dựng!