Cách tạo link cuộc họp Zoom OAuth giữa các máy chủ bằng Python

Python Zoom Meeting 7 size 300x0 znd

Học cách tạo link cuộc họp trên Zoom bảo mật bằng Python cho giao tiếp giữa các server với xác thực OAuth không khó. Dưới đây là hướng dẫn chi tiết.

Tạo link liên kết cuộc họp Zoom bằng Python

Dù đã tích hợp cuộc họp Zoom vào app Python hay chỉ mới lên kế hoạch để làm việc đó, Zoom cho biết ứng dụng JWT sẽ ngừng hoạt động vào ngày 1 tháng 9 năm 2023. Bạn sẽ phải chuyển sang tùy chọn OAuth hoặc OAuth từ máy chủ đến máy chủ để tránh thời gian ngừng hoạt động của dịch vụ.

Tùy chọn OAuth yêu cầu người dùng xác thực web qua tài khoản Zoom. Thế nhưng nếu bạn chỉ tạo các link cuộc họp Zoom mà không cần tới quyền của người dùng, tùy chọn OAuth từ server tới server là lựa chọn lý tưởng.

Vậy làm thế nào bạn có thể đạt được điều này với Python?

Tạo app OAuth từ server tới server trên Zoom

Để bắt đầu, tới Zoom Marketplace để xây dựng một app mới:

1. Cuộn qua danh sách ứng dụng và xác định vị trí banner Server-to-Server OAuth. Sau đó, click nút Create.

Zoom App Marketplace

2. Nhập tên cho ứng dụng ở trường được cung cấp. Sau đó, click Create. Hành động này đưa bạn tới một trang khác.

Tạo app bằng Python

3. Sao chép toàn bộ thông tin xác thực ứng dụng, bao gồm Account IDClient ID, và Client Secret. Click Continue sau khi hoàn thành. Có thể bạn muốn dán chúng vào file biến môi trường để ẩn chúng đi.

Xác thực ứng dụng

4. Trên menu sau, điền đầy đủ thông tin cơ bản vào trường information và nhấn nút Continue.

Điền thông tin cơ bản

5. Click Continue trên trang sau.

Tính năng của Zoom

6. Tiếp theo, click Add Scopes và thêm các phạm vi sau; Get a meeting’s encoded SIP URL và View and manage all user meetings.

Điền phạm vi trong app Zoom

7. Click Continue. Cuối cùng, nhấn Active your app để bắt đầu tương tác với Zoom API qua app OAuth server-to-server.

Test App

Code Python để tạo link Zoom

Sau khi đã hoàn thành tất cả các bước trên, bạn có thể tạo các liên kết cuộc họp nhanh chóng bằng Zoom API. Dưới đây là code đầy đủ để làm việc này:

import requests
# thay thế bằng ID của bạn
client_id = "<Your client ID>" 
# thay thế bằng ID tài khoản của bạn
account_id = "<Your account ID>" 
# thay bằng bí mật client của bạn
client_secret = "<Your client secret>" 
auth_token_url = "https://zoom.us/oauth/token"
api_base_url = "https://api.zoom.us/v2"
# tạo hàm liên kết Zoom
def create_meeting(topic, duration, start_date, start_time):
        data = {
        "grant_type": "account_credentials",
        "account_id": account_id,
        "client_secret": client_secret
        }
        response = requests.post(auth_token_url, 
                                 auth=(client_id, client_secret), 
                                 data=data)        
        if response.status_code!=200:
            print("Unable to get access token")
        response_data = response.json()
        access_token = response_data["access_token"]
        headers = {
            "Authorization": f"Bearer {access_token}",
            "Content-Type": "application/json"
        }
        payload = {
            "topic": topic,
            "duration": duration,
            'start_time': f'{start_date}T10:{start_time}',
            "type": 2
        }
        resp = requests.post(f"{api_base_url}/users/me/meetings", 
                             headers=headers, 
                             json=payload)        
        if resp.status_code!=201:
            print("Unable to generate meeting link")
        response_data = resp.json()        
        content = {
                    "meeting_url": response_data["join_url"], 
                    "password": response_data["password"],
                    "meetingTime": response_data["start_time"],
                    "purpose": response_data["topic"],
                    "duration": response_data["duration"],
                    "message": "Success",
                    "status":1
        }
        print(content)

Code này đầu tiên gửi một truy vấn tới token URL của Zoom cho token xác thực. Chuyển phần này xuống qua header tới API của Zoom, nó trả về một phản hồi chứa thông tin chi tiết cuộc họp được xác định trong payload. Thời gian bắt đầu cuộc họp (start_time) với payload phải ở định dạng ISO 8601 (được định dạng bằng toán tử chuỗi của Python).

Ví dụ, bạn có thể gọi hàm để lên lịch cuộc họp vào 23/8, lúc 3 giờ 24 phút chiều như sau:

create_meeting(
      "Test Zoom Meeting",
      "60",
      "2023-08-23",
      "18:24",
      )

API trả về một JSON chứa nhiều thông tin, bao gồm link cuộc họp, mật khẩu, ID và nhiều chi tiết khác. Bạn có thể in response_data và trích xuất dữ liệu bạn cần như đã thực hiện ở code trên.

Ví dụ, kết quả truy vấn trông như thế này:

OpenAI trong Python

Tích hợp Zoom Meeting vào ứng dụng

Mặc dù ví dụ trên không bao gồm tích hợp vào web hoặc API, việc xây dựng ứng dụng với Django, Flask, FastAPI hay framework Python khác, bạn đều dễ dàng có thể đưa code vào codebase.

Nếu xây dựng một API, bạn có thể chuyển đổi nó thành một endpoint mà client bất kỳ đều có thể sử dụng. Thậm chí, bạn có thể mượn ý tưởng này để xây dựng web bằng ngôn ngữ khác, ngoài Python.

Leave a Reply

Your email address will not be published. Required fields are marked *