新手指南

本教學導覽會講解如何使用影片 API 在專頁上建立影片。我們假設您知道如何使用終端機等指令行工具或 Postman 等應用程式執行基本 cURL 要求,並且對 Graph API 測試工具有基本了解。

準備工作

您需要準備以下事項:

  • 現有 Facebook 應用程式。如果您沒有應用程式,請前往 Facebook for Developers,點擊我的應用程式來建立一個。
  • 一段 10 至 20 MB 的影片,並已分割成各 5 MB 的區段,而所有區段均位於同一目錄下。
  • 您可以在當中執行 CREATE_CONTENT任務的專頁。
  • 可以執行 cURL 要求的指令行工具(如終端機)或應用程式(如 Postman)之存取權限。

第 1 步:取得用戶存取憑證

一般來說,您需要在您的應用程式中加入 Facebook 登入功能,以此從應用程式用戶獲取存取憑證。不過,在本教學導覽中,您可以使用已加入 Facebook 登入功能的 Graph API 測試工具,輕鬆地為您的任何應用程式產生憑證。

  1. 載入 Graph API 測試工具,從 Facebook 應用程式下拉式選單中選擇您的應用程式。

  2. 用戶或專頁下拉式選單,選擇取得用戶存取憑證,然後使用您的身分繼續並驗證身分。如果您是重用較舊的應用程式,則可能已經完成驗證。

  3. 權限部分,使用新增權限搜尋欄位來搜尋並選擇以下權限:pages_manage_engagementpages_read_user_content
  4. 點擊產生存取憑證
  5. 在顯示的模組視窗中以您的身分繼續,並選擇您最終要在哪個專頁上載影片。
  6. 在後續的各個畫面中選擇下一步,直至您關閉模組。這樣將可為您的應用程式授予您所選的權限,並產生用戶存取憑證
  7. 此為可選步驟。點擊藍色資訊圖示,驗證您已授予應用程式正確的權限(範圍)。

第 2 步:獲取專頁編號和相應憑證

  1. 使用 Graph 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. 在指令行工具中,前往包含影片區段的資料夾,然後向 graph-video.facebook.com 主機的 POST /page-id/videos 關係連線傳送 cURL 要求。如果您是使用 Postman,請在要求正文中以表格資料形式加入查詢參數鍵和值。

  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 設為 File(將鼠標移到該列以觸發下拉式選單),並手動選擇首個區段檔案。

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
}

我們會組合您的影片並為其編碼。編碼程序可能需時若干分鐘,以確保完整地編碼,具體視乎您的影片檔案大小而定。