開始使用

本教學導覽說明如何使用影片 API 在粉絲專頁上建立影片。其假設您知道如何使用終端機等指令行工具或 Postman 等應用程式來執行基本的 cURL 要求,並熟悉圖形 API 測試工具的基本操作。

準備工作

必備項目:

  • 現有的 Facebook 應用程式。如果沒有,請前往 Facebook for Developers,點擊我的應用程式,然後建立應用程式。
  • 一個 10 至 20 MB 的影片,將其分割成 5 MB 區塊,並將所有區塊放在同一個目錄內。
  • 您可對其執行 CREATE_CONTENT工作的粉絲專頁。
  • 存取可執行 cURL 要求的指令行工具(例如終端機)或應用程式(例如 Postman)。

步驟 1:取得用戶存取權杖

一般的作法是將 Facebook 登入實作到您的應用程式中,用其取得應用程式用戶的存取權杖。不過在本教學導覽中,您可以使用圖形 API 測試工具,因為其已實作「Facebook 登入」,並可讓您輕鬆為任何應用程式產生權杖。

  1. 請載入圖形 API 測試工具,然後從 Facebook 應用程式下拉式功能表中選擇您的應用程式。

  2. 用戶或粉絲專頁下拉式功能表中,選擇取得用戶存取權杖,然後繼續使用您的身分並進行驗證。如果您重複使用舊的應用程式,應該已完成驗證。

  3. 權限區段中,使用新增權限搜尋欄位來搜尋並選擇下列權限:pages_manage_engagementpages_read_user_content
  4. 點擊產生存取權杖
  5. 在所顯示的強制回應視窗中,繼續使用您的身分,並選擇您最後要上傳影片的粉絲專頁。
  6. 繼續點擊下一步完成其餘的畫面,直到關閉強制回應視窗為止。這程序將授予所選的權限給您的應用程式,同時也會產生用戶存取權杖
  7. 選用。點擊藍色資訊圖示,確認您已為應用程式授予正確的權限(範圍)。

步驟 2:取得您的粉絲專頁編號及其權杖

  1. 使用圖形 API 測試工具,傳送要求至 GET /me/accounts 關係連線。這會查詢您的用戶,並傳回您在上一個步驟中授權應用程式存取的任何粉絲專頁。
  2. 在回應中找出您的粉絲專頁,並複製其編號(id)和粉絲專頁存取權杖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"
        }
      }
    }
    

步驟 3:建立影片連線階段

  1. 在指令行工具中,導覽至包含影片區塊的資料夾,然後傳送 cURL 要求至 graph-video.facebook.com 主機上的 POST /page-id/videos 關係連線。如果您使用 Postman,請將查詢參數鍵和值以 form-data 包含在要求內文中。

  2. 要求範例
    curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=start" \
      -F "file_size=77188035"
    
  3. 將要求路徑中的粉絲專頁編號(1755847768034402)換成您的粉絲專頁編號,將 access_token 設為先前複製的粉絲專頁存取權杖,並將 file_size 設為影片檔的總大小(單位為位元組)。

  4. API 會傳回影片連線階段:
    {
      "video_id": "225467151853466",
      "start_offset": "0",
      "end_offset": "1048576",
      "upload_session_id": "225467155186799"
    }
    
  5. 複製所有傳回的值,end_offset 除外。

步驟 4:上傳第一個影片區塊

傳送另一個要求至 POST /{page-id}/videos 關係連線,並包含您的 upload_session_id 和第一個影片區塊的名稱。

要求範例

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"

如果使用 cURL,請在檔案名稱前面加上 @ 符號。

如果使用 Postman,請省略 @ 符號,將 video_file_chunk 設為檔案(將滑鼠移到該列上方,以觸發下拉式功能表)並手動選擇第一個區塊檔案。

API 會以新的 start_offset 回應。請擷取新的值。

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

步驟 5:上傳其餘的影片區塊

  1. 執行相同的要求,但將 start_offset 設為先前回應中傳回的新 start_offset 值,然後將 video_file_chunk 設為序列中下一個影片區塊的名稱。
  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"
    
    API 會再次以新的 start_offset 值回應,您可以使用該值來上傳序列中的下一個區塊。
    {
      "start_offset":"15728640",
      "end_offset":"20971520"
    }
    
  3. 繼續重複此步驟,直到以正確順序上傳所有其餘的影片區塊為止。您用來將影片檔分割為區塊的程式應該能夠依順序為區塊命名。

步驟 6:結束上傳連線階段

上傳最後一個區塊之後,傳送最後一個要求至相同的端點並將 upload_phase 設為完成,以結束上傳連線階段。

要求範例

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

成功時,API 會結束上傳連線階段並以 true 回覆。

{
  "success": true
}

我們會將您的影片組合並進行編碼。編碼程序可能需要幾分鐘才能完全編碼,視影片檔的總大小而定。