احراز هویت تماس های API
در این مثال، ما نشان میدهیم که چگونه میتوان از حسابهای سرویس برای فراخوانی AdSense Platforms API برای ایجاد و مدیریت حسابهای فرعی استفاده کرد.
مرحله 1: یک پروژه Google Cloud جدید ایجاد کنید (یا از یک موجود استفاده کنید)
اگر پروژه Google Cloud موجودی دارید، از آن استفاده کنید. در غیر این صورت، راهنمای زیر را برای راه اندازی یک پروژه جدید دنبال کنید:
https://cloud.google.com/resource-manager/docs/creating-managing-projects
مرحله 2: یک حساب کاربری ایجاد کنید
استفاده از حساب های خدماتی بهترین راه برای ایجاد حساب های فرعی است. برای ایجاد حساب سرویس خود مراحل زیر را دنبال کنید:
- از صفحه حسابهای سرویس در Google Cloud دیدن کنید
- می توانید از یک حساب سرویس موجود استفاده کنید یا یک حساب جدید ایجاد کنید:
- روی "+ ایجاد حساب سرویس" کلیک کنید
- فرم "جزئیات حساب خدمات" را پر کنید
- مراحل 2 و 3 در صفحه (اعطای دسترسی به پروژه ها و کاربران) اختیاری است
درباره ایجاد و مدیریت حساب های خدماتی بیشتر بیاموزید.
پس از ایجاد حساب سرویس، باید آن را به Google ارسال کنید تا به حساب AdSense شما اضافه شود. این ضروری است، زیرا حساب سرویس باید اجازه دسترسی به حساب AdSense شما را داشته باشد. لطفاً آن را از طریق مدیر حساب خود در میان بگذارید.
مرحله 3: API پلتفرم AdSense را برای پروژه Google Cloud خود فعال کنید
AdSense Platform API قابل کشف نیست، به این معنی که برای فعال کردن آن برای پروژه خود باید از پیوند زیر دیدن کنید:
https://console.developers.google.com/apis/api/adsenseplatform.googleapis.com/overview
مرحله 4: یک کلید سرویس ایجاد کنید
برای ایجاد نشانه های دسترسی برای استفاده در تماس های API، باید یک کلید سرویس ایجاد کنید. این مراحل را دنبال کنید:
- از صفحه حسابهای سرویس در Google Cloud دیدن کنید
- در ستون اقدامات، برای حساب سرویسی که می خواهید برای ایجاد حساب های فرعی استفاده کنید، کلیک کنید سپس روی "مدیریت کلیدها" کلیک کنید
- روی «افزودن کلید» کلیک کنید، سپس «ایجاد کلید جدید» را انتخاب کنید.
- JSON را به عنوان نوع کلید انتخاب کنید و روی "ایجاد" کلیک کنید.
- یک فایل json ایجاد و در رایانه شما دانلود می شود. این را ایمن نگه دارید زیرا برای احراز هویت تماس های API لازم است
درباره ایجاد و مدیریت کلیدهای حساب سرویس بیشتر بیاموزید.
مرحله 5: از کتابخانه های OAuth گوگل برای ایجاد یک نشانه دسترسی استفاده کنید
Google کتابخانههایی را برای کمک به تولید نشانههای دسترسی فراهم میکند که میتوان از آنها برای برقراری تماسهای API استفاده کرد. درباره نحوه ایجاد اعتبار برای حسابهای سرویس در اینجا بیاموزید:
https://developers.google.com/identity/protocols/oauth2/service-account#authorizingrequests
دامنه API پلتفرم های AdSense به شرح زیر است: https://www.googleapis.com/auth/adsense
مثال پایتون
from google.auth.transport import requests
from google.oauth2 import service_account
CREDENTIAL_SCOPES = ["https://www.googleapis.com/auth/adsense"]
CREDENTIALS_KEY_PATH = 'service.json'
def get_service_account_token():
credentials = service_account.Credentials.from_service_account_file(
CREDENTIALS_KEY_PATH, scopes=CREDENTIAL_SCOPES)
credentials.refresh(requests.Request())
return credentials.token
در این مرحله، شما آماده شروع فراخوانی APIها هستید. از آنجایی که کتابخانه های سرویس گیرنده هنوز برای API پلتفرم AdSense پشتیبانی نمی شوند، به جای آن باید درخواست های مستقیم HTTP انجام شود. نشانه دسترسی باید به عنوان سربرگ در درخواست HTTP گنجانده شود. هدر باید به شکل زیر باشد:
Authorization: OAuth <credentials>
نمونه هایی در صفحات API گنجانده شده است.