+2

Thực hiện cuộc gọi điện thoại bằng Python

Một ngày đẹp trời nào đó bạn gặp dự án mà khách hàng yêu cầu làm call-center chẳng hạn thì chắc hẳn có vô vàn giải pháp bạn có thể tìm thấy hoặc nghĩ ra. Hôm nay tôi sẽ gợi ý cho các bạn 1 giải pháp sử dụng ngôn ngữ Python để thưc hiện cuộc gọi trên di động của bạn 😄

Công cụ sử dụng

Chúng ta có thể dùng cả Python 2 hoặc 3 để xây dựng ứng dụng này. Trong bài viết này chúng ta cũng dùng:

  • pip và virtualenv để quản lý các gói thư viện của ứng dụng
  • Một tài khoản Twilio miễn phí để sử dụng phone calling web API
  • Thư viện Twilio's Python, cái mà đã có sẵn trong PyPI

Cài các thư viện phụ thuộc

Vui lòng mở terminal của bạn lên và sử dụng lệnh sau để tạo môi trường mới:

virtualenv phoneapp

Tiếp đến bạn cần activate nó lên

source phoneapp/bin/activate

Bạn sử dụng lệnh pip để cài đặt gói thư viện Twilio Python

pip install twilio

Code Python

Tạo 1 file có tên là phone_calls.py với nội dung như sau:

from twilio.rest import TwilioRestClient


# Twilio phone number goes here. Grab one at https://twilio.com/try-twilio
# and use the E.164 format, for example: "+12025551234"
TWILIO_PHONE_NUMBER = ""

# list of one or more phone numbers to dial, in "+19732644210" format
DIAL_NUMBERS = ["",]

# URL location of TwiML instructions for how to handle the phone call
TWIML_INSTRUCTIONS_URL = \
  "http://static.fullstackpython.com/phone-calls-python.xml"

# replace the placeholder values with your Account SID and Auth Token
# found on the Twilio Console: https://www.twilio.com/console
client = TwilioRestClient("ACxxxxxxxxxx", "yyyyyyyyyy")


def dial_numbers(numbers_list):
    """Dials one or more phone numbers from a Twilio phone number."""
    for number in numbers_list:
        print("Dialing " + number)
        # set the method to "GET" from default POST because Amazon S3 only
        # serves GET requests on files. Typically POST would be used for apps
        client.calls.create(to=number, from_=TWILIO_PHONE_NUMBER,
                            url=TWIML_INSTRUCTIONS_URL, method="GET")


if __name__ == "__main__":
    dial_numbers(DIAL_NUMBERS)

Chúng ta cần sửa 1 chút trước khi chạy ứng dụng. Đầu tiên bạn thêm một hoặc nhiều số điện thoại mà bạn muốn gọi đến vào danh sách DIAL_NUMBERS. Ví dụ:

DIAL_NUMBERS = ["+12025551234", "+14155559876", "+19735551234"]

Tiếp theo sửa TWILIO_PHONE_NUMBERAccount SIDAuthentication Token tại dòng client = TwilioRestClient("ACxxxxxxxxxx", "yyyyyyyyyy")

Hãy mở trình duyệt web rồi đăng nhập vào tài khoản Twilio

Sao chép Account SIDAuth Token từ Twilio Console sau đó dán vào trong code ứng dụng của bạn

Sau đó bạn nhấn vào số điện thoại bạn muốn cấu hình. Dán vào URL với TwiML. Thay đổi HTTP POST thành HTTP GET. Trong bài viết này chúng ta sẽ sử dụng URL này http://static.fullstackpython.com/phone-calls-python.xml

Thực hiện cuộc gọi điện thoại

Giờ thì cầm điện thoại lên và trải nghiệm bằng lệnh:

python phone_calls.py

Và đây là kết quả sau vài dòng code Python

Như vậy chúng ta đã cùng nhau tìm hiểu làm thế nào để thực hiện cuộc gọi điện thoại bằng Python, bài viết được dịch từ https://www.fullstackpython.com/blog/make-phone-calls-python.html

Cảm ơn các bạn đã đọc bài, hẹn gặp lại các bạn ở các loạt bài tiếp theo. Happy coding!!!


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.