درخواست‌های جلسه پخش زنده را تأیید کنید

درخواست پخش زنده، یک جلسه جدید را برای یک رویداد پخش زنده ثبت می‌کند. برای اطلاعات بیشتر، به «درخواست پخش زنده» مراجعه کنید.

این صفحه نحوه استفاده از توکن HMAC برای احراز هویت درخواست‌های استریم را پوشش می‌دهد.

قبل از اینکه شروع کنی

  • پیش‌نیازها را تکمیل کنید.
  • مطمئن شوید که کلیدهای تأیید اعتبار ایجاد استریم در رویداد پخش زنده شما در حساب Google Ad Manager شما فعال هستند.

یک توکن HMAC ایجاد کنید

برای تولید توکن، مراحل زیر را انجام دهید:

  1. پارامترهای مسیر و پرس و جوی مورد نیاز برای درخواست جلسه استریم خود را جمع‌آوری کنید. برای مشاهده لیست کامل، به Method: stream مراجعه کنید.
  2. رشته‌های کلید و مقدار پارامتر خود را ترکیب کنید. شما باید پارامترها را بر اساس حروف الفبا مرتب کنید و پارامترها را با کاراکتر ~ از هم جدا کنید، برای مثال:

    custom_asset_key=CUSTOM_ASSET_KEY~exp=EXPIRATION~network_code=NETWORK_CODE
    

    موارد زیر را جایگزین کنید:

    • CUSTOM_ASSET_KEY : الزامی. کلید سفارشی رویداد پخش زنده.
    • EXPIRATION : الزامی. مهر زمان انقضای توکن در زمان عصر یونیکس.
    • NETWORK_CODE : الزامی. کد شبکه حساب مدیریت تبلیغات گوگل شما.
  3. با استفاده از کلید احراز هویت DAI خود، هش SHA-256 رشته توکن را محاسبه کنید.

  4. خروجی هش را به صورت هگزادسیمال قالب‌بندی کنید.

  5. برای امضای رشته توکن، امضا را به انتهای پارامترهای جمع‌آوری‌شده قبلی اضافه کنید:

    custom_asset_key=...~hmac=HMAC_SIGNATURE
    

    HMAC_SIGNATURE با امضایی که با هش کردن رشته توکن با استفاده از کلید احراز هویت DAI خود ایجاد کرده‌اید، جایگزین کنید.

  6. برای ارسال ایمن رشته توکن امضا شده، کدگذاری URL را روی رشته توکن امضا شده اعمال کنید.

مثال زیر یک رشته توکن را که ظرف 60 ثانیه منقضی می‌شود، امضا و رمزگذاری می‌کند:

# Add 60 seconds to the current time
future_epoch=$((EPOCHSECONDS + 60))
echo "Current: $EPOCHSECONDS"
echo "Future: $future_epoch"
# Current: 1774478306
# Future: 1774478366

# Sample DAI stream authentication key
key="DE0E9..."

# Sort parameters in the token string
token="custom_asset_key=hls-pod-serving-redirect-auth-stream-pod~exp=1774478366~network_code=21775744923"

# Generate the token's signature.
echo -n $token | openssl dgst -sha256 -mac HMAC -macopt key:$key
# SHA2-256(stdin)= 17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365

# Sign the token: custom_asset_key=hls-pod-serving-redirect-auth-stream-pod~exp=1774478366~network_code=21775744923~hmac=17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365

# Encode the token: custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-podexp%3D1774478366network_code%3D21775744923~hmac%3D17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365

برای درخواست پخش زنده از توکن HMAC استفاده کنید

برای تأیید اعتبار درخواست ایجاد جریان خود با یک نشانه HMAC، یکی از موارد زیر را انجام دهید:

اچ ال اس

سربرگ درخواست Authorization

curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/hls-pod-serving-redirect-auth-stream-pod/stream" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: DCLKDAI token=custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-podexp%3D1774478366network_code%3D21775744923~hmac%3D17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365"

پارامتر رشته پرس و جو

curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/hls-pod-serving-redirect-auth-stream-pod/stream?auth-token=custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-podexp%3D1774478366network_code%3D21775744923~hmac%3D17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded"

فیلد داده فرم

curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/hls-pod-serving-redirect-auth-stream-pod/stream" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "auth-token=custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-podexp%3D1774478366network_code%3D21775744923~hmac%3D17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365"

در صورت موفقیت، پاسخ JSON زیر را مشاهده خواهید کرد:

{
"stream_id":"6299a01b-450d-4879-a5c8-fe3cf2188aee:CBF2",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/6299a01b-450d-4879-a5c8-fe3cf2188aee:CBF2/loc/CBF2/network/21775744923/event/C5BT3czhT2Sc7OIbM8ibqA/media/","metadata_url":"https://dai.google.com/linear/pods/hls/pa/event/C5BT3czhT2Sc7OIbM8ibqA/stream/6299a01b-450d-4879-a5c8-fe3cf2188aee:CBF2/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/C5BT3czhT2Sc7OIbM8ibqA/stream/6299a01b-450d-4879-a5c8-fe3cf2188aee:CBF2/session",
"polling_frequency":10
}

برای درک ساختار پاسخ و کدهای وضعیت، به Method: stream مراجعه کنید.

اگر احراز هویت ناموفق باشد، خطای زیر را مشاهده خواهید کرد:

<!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>s

دش

سربرگ درخواست Authorization

curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/dash-pod-serving-redirect-auth-stream-pod/stream"\
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: DCLKDAI token=custom_asset_key%3Ddash-pod-serving-redirect-auth-stream-podexp%3D1772817105network_code%3D21775744923~hmac%3Dc7e10f51f544610cdda28fdee903472839bf1154701ae371c0196d8f63c8bdda"

پارامتر رشته پرس و جو

curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/dash-pod-serving-redirect-auth-stream-pod/stream?auth-token=custom_asset_key%3Ddash-pod-serving-redirect-auth-stream-podexp%3D1772817105network_code%3D21775744923~hmac%3Dc7e10f51f544610cdda28fdee903472839bf1154701ae371c0196d8f63c8bdda" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded"

فیلد داده فرم

curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/dash-pod-serving-redirect-auth-stream-pod/stream" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "auth-token=custom_asset_key%3Ddash-pod-serving-redirect-auth-stream-podexp%3D1772817105network_code%3D21775744923~hmac%3Dc7e10f51f544610cdda28fdee903472839bf1154701ae371c0196d8f63c8bdda"

در صورت موفقیت، پاسخ JSON زیر را مشاهده خواهید کرد:

{
"stream_id": "e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL/loc/ATL/network/21775744923/event/YMTFNxBxTR66kFv-krZHcQ/media/",
"metadata_url": "https://dai.google.com/linear/pods/dash/pa/event/YMTFNxBxTR66kFv-krZHcQ/stream/e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL/metadata",
"session_update_url": "https://dai.google.com/linear/v1/pa/event/YMTFNxBxTR66kFv-krZHcQ/stream/e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL/session",
"polling_frequency": 10,
"pod_manifest_url": "https://dai.google.com/linear/pods/v1/dash/event/YMTFNxBxTR66kFv-krZHcQ/stream/e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL/pod/$pod-id$/manifest.mpd",
"manifest_format": "dash"
}

برای درک ساختار پاسخ و کدهای وضعیت، به Method: stream مراجعه کنید.

اگر احراز هویت ناموفق باشد، خطای زیر را مشاهده خواهید کرد:

<!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>