Bắt đầu

Hướng dẫn này chỉ cho bạn cách sử dụng API Video để tạo Video trên Trang. Hướng dẫn giả định rằng bạn biết cách thực hiện các yêu cầu cURL cơ bản bằng công cụ dòng lệnh như Terminal hoặc ứng dụng như Postman, đồng thời quen thuộc với Trình khám phá API Đồ thị.

Trước khi bạn bắt đầu

Bạn sẽ cần:

  • Một ứng dụng hiện có trên Facebook. Nếu bạn chưa có ứng dụng nào, hãy chuyển đến Facebook for Developers, nhấp vào Ứng dụng của tôi rồi tạo một ứng dụng.
  • Video có kích thước 10 - 20MB mà bạn đã tách thành các file cắt 5MB và đưa tất cả file cắt vào một thư mục.
  • Trang mà bạn có thể thực hiện Tác vụCREATE_CONTENT.
  • Quyền truy cập vào công cụ dòng lệnh (như Terminal) hoặc ứng dụng (như Postman) có thể thực hiện các yêu cầu cURL.

Bước 1: Lấy mã truy cập người dùng

Theo thông lệ chung, bạn phải triển khai phương thức Đăng nhập bằng Facebook cho ứng dụng của mình và dùng phương thức đó để lấy Mã truy cập từ người dùng ứng dụng. Tuy nhiên, trong hướng dẫn này, bạn có thể sử dụng Trình khám phá API Đồ thị vì công cụ này đã triển khai phương thức Đăng nhập bằng Facebook và giúp bạn dễ dàng tạo mã cho bất kỳ ứng dụng nào.

  1. Hãy tải Trình khám phá API Đồ thị, chọn ứng dụng của bạn trong menu thả xuống Ứng dụng Facebook.

  2. Trong menu thả xuống Người dùng hoặc Trang, hãy chọn Lấy mã truy cập người dùng rồi tiếp tục dưới tên bạn và xác thực. Nếu đang dùng lại một ứng dụng cũ hơn thì có thể bạn đã được xác thực.

  3. Trong phần Quyền, hãy dùng trường tìm kiếm Thêm quyền để tìm và chọn các quyền sau: pages_manage_engagementpages_read_user_content.
  4. Nhấp vào Tạo mã truy cập.
  5. Trong cửa sổ phương thức xuất hiện, hãy tiếp tục dưới tên bạn và chọn Trang mà cuối cùng bạn muốn tải video lên.
  6. Tiếp tục nhấp vào Tiếp qua các màn hình còn lại cho đến khi bạn bỏ qua phương thức. Hành động này sẽ cấp cho ứng dụng các quyền mà bạn đã chọn, đồng thời sẽ tạo mã truy cập người dùng.
  7. Không bắt buộc. Nhấp vào biểu tượng thông tin màu xanh da trời để xác minh rằng bạn đã cấp cho ứng dụng các quyền (phạm vi) chính xác.

Bước 2: Lấy ID và mã truy cập của Trang

  1. Sử dụng Trình khám phá API Đồ thị để gửi yêu cầu đến cạnh GET /me/accounts. Yêu cầu này sẽ truy vấn người dùng và trả về bất kỳ Trang nào mà bạn đã cho phép ứng dụng truy cập ở bước cuối cùng.
  2. Xác định Trang của bạn trong phần phản hồi rồi sao chép ID của Trang đó (id) và mã truy cập Trang (access_token).
  3. {
      "data": [
        {
          "access_token": "EBACf...",  //Copy your Page Access Token
          "category": "Media",
          "category_list": [
            {
              "id": "163003840417682",
              "name": "Media"
            }
          ],
          "name": "Metricsaurus",
          "id": "1755847768034402",  //Copy your Page ID
          "tasks": [
            "ANALYZE",
            "ADVERTISE",
            "MODERATE",
            "CREATE_CONTENT",
            "MANAGE"
          ]
        }
      ],
      "paging": {
        "cursors": {
          "before": "MTc1NTg0Nzc2ODAzNDQwMgZDZD",
          "after": "MTc1NTg0Nzc2ODAzNDQwMgZDZD"
        }
      }
    }
    

Bước 3: Tạo phiên video

  1. Trong công cụ dòng lệnh, hãy chuyển đến thư mục chứa các file cắt của video, sau đó gửi yêu cầu cURL đến cạnh POST /page-id/videos trên máy chủ graph-video.facebook.com. Nếu bạn đang sử dụng Postman, hãy thêm các khóa và giá trị của thông số truy vấn vào phần Nội dung yêu cầu dưới dạng form-data.

  2. Yêu cầu mẫu
    curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=start" \
      -F "file_size=77188035"
    
  3. Thay thế ID Trang (1755847768034402) trong đường dẫn yêu cầu bằng ID Trang của bạn, đặt access_token thành mã truy cập Trang mà bạn vừa sao chép, sau đó đặt file_size thành tổng kích thước của file video theo byte.

  4. API này trả về phiên video:
    {
      "video_id": "225467151853466",
      "start_offset": "0",
      "end_offset": "1048576",
      "upload_session_id": "225467155186799"
    }
    
  5. Sao chép mọi giá trị trả về, ngoại trừ end_offset.

Bước 4: Tải lên file cắt đầu tiên của video

Gửi một yêu cầu khác đến cạnh POST /{page-id}/videos và thêm upload_session_id cũng như tên file cắt đầu tiên của video.

Yêu cầu mẫu

curl -X POST \
  "https://graph-video.facebook.com/1755847768034402/videos" \
  -F "access_token=EBACf..." \
  -F "upload_phase=transfer" \
  -F "start_offset=0" \
  -F "upload_session_id=225467155186799" \
  -F "video_file_chunk=@xaa"

Nếu bạn đang sử dụng cURL, hãy thêm biểu tượng @ vào trước tên file của bạn.

Nếu bạn đang sử dụng Postman, hãy bỏ biểu tượng @, đặt video_file_chunk thành File (di chuột qua hàng cần kích hoạt menu thả xuống) rồi chọn file cắt đầu tiên theo cách thủ công.

API này sẽ phản hồi kèm theo start_offset mới. Ghi lại giá trị mới.

{
  "start_offset": "10485760",
  "end_offset": "15728640"
}

Bước 5: Tải lên các file cắt còn lại của video

  1. Thực hiện yêu cầu tương tự, nhưng đặt start_offset thành giá trị start_offset mới được trả về trong phần phản hồi trước đó, sau đó đặt video_file_chunk thành tên file cắt tiếp theo của video theo trình tự.
  2. curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=transfer" \
      -F "start_offset=10485760" \
      -F "upload_session_id=225467155186799" \
      -F "video_file_chunk=@xab"
    
    Một lần nữa, API này sẽ phản hồi kèm theo giá trị start_offset mới. Bạn có thể dùng giá trị này để tải file cắt tiếp theo lên theo trình tự.
    {
      "start_offset":"15728640",
      "end_offset":"20971520"
    }
    
  3. Tiếp tục lặp lại bước này cho đến khi bạn tải hết các file cắt còn lại của video lên theo đúng thứ tự. Chương trình bạn dùng để tách file video thành các file cắt sẽ chịu trách nhiệm đặt tên cho các file cắt theo đúng trình tự.

Bước 6: Kết thúc phiên tải lên

Sau khi bạn tải file cắt cuối cùng lên, hãy gửi một yêu cầu cuối cùng đến chính điểm cuối đó và đặt upload_phase thành kết thúc để kết thúc phiên tải lên.

Yêu cầu mẫu

curl -X POST \
  "https://graph-video.facebook.com/1755847768034402/videos"  \
  -F "access_token=EBACf..." \
  -F "upload_phase=finish" \
  -F "upload_session_id=225467155186799"

Khi thành công, API này sẽ kết thúc phiên tải lên và phản hồi kèm theo true.

{
  "success": true
}

Chúng tôi sẽ sắp xếp và mã hóa video của bạn. Quy trình mã hóa có thể mất tối đa vài phút mới hoàn tất, tùy theo tổng kích thước của file video.