คำขอสตรีมจะลงทะเบียนเซสชันสำหรับกิจกรรมไลฟ์สด โปรดดูรายละเอียดที่หัวข้อส่งคำขอสตรีม
หน้านี้ครอบคลุมการใช้โทเค็น HMAC เพื่อตรวจสอบสิทธิ์คำขอสตรีม
ก่อนเริ่มต้น
ก่อนดำเนินการต่อ ให้ทำดังนี้
- ทำตามข้อกำหนดเบื้องต้น
- ในบัญชี Google Ad Manager ให้เปิดใช้ คีย์การตรวจสอบสิทธิ์การสร้างสตรีมสำหรับกิจกรรมไลฟ์สด หากใช้การตรวจสอบสิทธิ์โทเค็น คุณจะต้องระบุคีย์
สร้างโทเค็น HMAC
หากต้องการสร้างโทเค็น ให้ทำดังนี้
- รวบรวมคีย์ชิ้นงานและเวลาหมดอายุของไลฟ์สด ดูข้อมูลเพิ่มเติมได้ที่ เปิดใช้การตรวจสอบสิทธิ์สำหรับคำขอสร้างเซสชันสตรีม DAI
จัดเรียงพารามิเตอร์ต่อไปนี้ตามลำดับตัวอักษรและคั่นพารามิเตอร์ด้วยอักขระทิลด้า
~event=ASSET_KEY~exp=EXPIRATIONแทนที่ค่าต่อไปนี้
ASSET_KEY: ต้องระบุ คีย์ชิ้นงานของกิจกรรมไลฟ์สดEXPIRATION: ต้องระบุ การประทับเวลาหมดอายุของโทเค็นในเวลา Unix Epoch
คำนวณแฮช SHA-256 ของสตริงโทเค็นโดยใช้คีย์การตรวจสอบสิทธิ์ DAI
จัดรูปแบบเอาต์พุตแฮชในเลขฐานสิบหก
หากต้องการลงนามในสตริงโทเค็น ให้ต่อท้ายลายเซ็นที่ท้ายพารามิเตอร์ที่รวบรวมไว้ก่อนหน้านี้
event=...~hmac=HMAC_SIGNATUREแทนที่
HMAC_SIGNATUREด้วยลายเซ็นที่คุณสร้างขึ้นโดย แฮชสตริงโทเค็นโดยใช้คีย์การตรวจสอบสิทธิ์ DAIหากต้องการส่งสตริงโทเค็นที่ลงชื่ออย่างปลอดภัย ให้ใช้การเข้ารหัส URL กับสตริงโทเค็นที่ลงชื่อ
ตัวอย่างต่อไปนี้จะลงนามและเข้ารหัสสตริงโทเค็นที่จะหมดอายุภายใน 60 วินาที
# Add 60 seconds to the current time
future_epoch=$((EPOCHSECONDS + 60))
echo "Current: $EPOCHSECONDS"
echo "Future: $future_epoch"
# Current: 1767389133
# Future: 1767389193
# Sample DAI stream authentication key
key="DE0E9..."
# Sort parameters in the token string
token="event=YRB0Bl0oQRCb5J-maPpJUQ~exp=1767389193"
# Generate the token's signature.
echo -n $token | openssl dgst -sha256 -mac HMAC -macopt key:$key
# SHA2-256(stdin)= 9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248
# Sign the token: event=YRB0Bl0oQRCb5J-maPpJUQ~exp=1767389193~hmac=9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248
# Encode the token: event%3DYRB0Bl0oQRCb5J%2DmaPpJUQ%7Eexp%3D1767389193%7Ehmac%3D9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248
ใช้โทเค็น HMAC เพื่อขอเซสชันไลฟ์สด
หากต้องการตรวจสอบสิทธิ์คำขอสร้างสตรีมด้วยโทเค็น HMAC ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
Authorization ส่วนหัวของคำขอ
curl "https://dai.google.com/linear/v1/hls/event/YRB0Bl0oQRCb5J-maPpJUQ/stream" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: DCLKDAI token=event%3DYRB0Bl0oQRCb5J%2DmaPpJUQ%7Eexp%3D1767389193%7Ehmac%3D9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248"
พารามิเตอร์สตริงการค้นหา
curl "https://dai.google.com/linear/v1/hls/event/YRB0Bl0oQRCb5J-maPpJUQ/stream?auth-token=event%3DYRB0Bl0oQRCb5J%2DmaPpJUQ%7Eexp%3D1767389193%7Ehmac%3D9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded"
ฟิลด์ข้อมูลของแบบฟอร์ม
curl "https://dai.google.com/linear/v1/hls/event/YRB0Bl0oQRCb5J-maPpJUQ/stream" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "auth-token=event%3DYRB0Bl0oQRCb5J%2DmaPpJUQ%7Eexp%3D1767389193%7Ehmac%3D9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248"
หากสำเร็จ คุณจะเห็นการตอบกลับ JSON ต่อไปนี้
{
"hls_master_playlist": "https://dai.google.com/linear/hls/pa/event/YRB0Bl0oQRCb5J-maPpJUQ/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/master.m3u8",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/loc/DLS/network/21775744923/event/YRB0Bl0oQRCb5J-maPpJUQ/media/",
"metadata_url": "https://dai.google.com/linear/v1/pa/event/YRB0Bl0oQRCb5J-maPpJUQ/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/metadata",
"polling_frequency": 10,
"session_update_url": "https://dai.google.com/linear/v1/pa/event/YRB0Bl0oQRCb5J-maPpJUQ/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/session",
"stream_id": "e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS",
"stream_manifest": "https://dai.google.com/linear/hls/pa/event/YRB0Bl0oQRCb5J-maPpJUQ/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/master.m3u8"
}
ดูโครงสร้างการตอบกลับและรหัสสถานะได้ที่เมธอด: สตรีม หากการตรวจสอบสิทธิ์ไม่สำเร็จ คุณจะเห็นข้อผิดพลาดต่อไปนี้
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 401 (Unauthorized)!!1</title>
...
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>
<p><b>401.</b> <ins>That’s an error.</ins>
<p><ins>That’s all we know.</ins>