گردش کار احراز هویت تک کاربر

مشابه گردش کار حساب سرویس ، جریان احراز هویت تک کاربر از ویژگی‌های مجوز و مدیریت کاربر ارائه شده توسط Google Ads UI برای اعطای دسترسی به برنامه به همه حساب‌های ضروری استفاده می‌کند. این گردش کار احراز هویت دو مرحله دارد:

  • شما به یک کاربر اجازه دسترسی به همه حساب‌های Google Ads را می‌دهید که باید توسط برنامه مدیریت شوند.
  • کاربر به برنامه شما اجازه می‌دهد تا حساب‌های Google Ads خود را از طرف او مدیریت کند، بنابراین به برنامه اجازه می‌دهد به همه حساب‌های Google Ads دسترسی داشته باشد.

از آنجایی که فقط یک کاربر درگیر است، می‌توانید به جای ایجاد جریان احراز هویت کاربر OAuth 2.0 به ابزارهایی مانند gcloud CLI یا مثال کد GenerateUserCredential تکیه کنید.

یک مورد استفاده مرتبط برای این گردش کاری زمانی است که می توان به حساب های شما از طریق تعداد انگشت شماری از ورود به سیستم کاربر (به عنوان مثال 3-4 کاربر) دسترسی داشت، بنابراین تلاش توسعه برای ایجاد یک گردش کار احراز هویت کاربر OAuth کامل در مقایسه با تلاش برای دریافت مجوز برای 3-4 کاربر با استفاده از یک ابزار خط فرمان مانند gcloud CLI توجیه پذیر نیست.

معایب

این جریان در مقایسه با گردش کار حساب سرویس دارای چند معایب است:

  1. گردش کار احراز هویت کاربر به شما نیاز دارد که یک شناسه مشتری OAuth 2.0 و یک رمز در Google Cloud Console ایجاد کنید، که به مراحل پیکربندی بیشتری نسبت به ایجاد حساب و کلید سرویس نیاز دارد.
  2. ممکن است برنامه شما مجبور باشد یک فرآیند تأیید اعتبار Google Cloud App اضافی را طی کند.
  3. اگر کاربر مجاز تیم یا شرکت را ترک کند، در صورت حذف کاربر از حساب های خود یا غیرفعال کردن حساب کاربری، ممکن است برنامه شما از کار بیفتد. حساب‌های سرویس به کاربران فردی وابسته نیستند، بنابراین از این خطر جلوگیری می‌شود.
  4. کاربری که به حساب Google Ads مجوز می دهد باید اقدامات احتیاطی بیشتری مانند فعال کردن احراز هویت دو عاملی برای دفاع در برابر در معرض خطر قرار گرفتن حساب Google خود به دلیل در معرض خطر قرار گرفتن به دلیل امنیت ضعیف، بدافزار یا فیشینگ انجام دهد. حساب‌های سرویس کمتر در برابر این مشکل آسیب‌پذیر هستند، زیرا برخی از این حالت‌های حمله مستقیماً برای آنها اعمال نمی‌شود.

اعتبارنامه تولید کنید

  1. دستورالعمل‌ها را برای پیکربندی صفحه رضایت OAuth برای برنامه خود دنبال کنید و https://www.googleapis.com/auth/adwords به عنوان محدوده OAuth 2.0 اضافه کنید.

  2. با دنبال کردن دستورالعمل ها ، یک شناسه مشتری و راز مشتری ایجاد کنید. هنگامی که مشتری OAuth 2.0 را ایجاد کردید، ابتدا فایل JSON مشتری را با کلیک کردن روی نماد دانلود مشتری OAuth و سپس دکمه DOWNLOAD JSON در صفحه زیر دانلود کنید. فایل را به عنوان credentials.json ذخیره کنید.

  3. حساب کاربری را شناسایی کنید که به تمام حساب‌های Google Ads که می‌خواهید با استفاده از برنامه‌تان مدیریت کنید، دسترسی دارد. اگر حساب‌هایی با دسترسی از دست رفته وجود دارد، دستورالعمل‌ها را برای دادن دسترسی لازم دنبال کنید.

  4. gcloud CLI را دانلود و نصب کنید . پس از نصب، با اجرای دستور gcloud version از خط فرمان، بررسی کنید که ابزار به درستی کار می کند. خروجی ممکن است به صورت زیر باشد.

    :~$ gcloud version
    Google Cloud SDK 492.0.0
    alpha 2024.09.06
    beta 2024.09.06
    bq 2.1.8
    bundled-python3-unix 3.11.9
    core 2024.09.06
    enterprise-certificate-proxy 0.3.2
    gcloud-crc32c 1.0.0
    gsutil 5.30
  5. با اجرای ابزار gcloud CLI یک نشانه به‌روزرسانی OAuth 2.0 ایجاد کنید:

    gcloud auth application-default 
    login --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
    --client-id-file=<path_to_credentials.json>

    فایل credentials.json مربوط به مرحله قبل است.

  6. دستور gcloud یک پنجره ورود به حساب Google را در یک پنجره مرورگر جدید باز می کند و شما را از مراحل احراز هویت OAuth 2.0 راهنمایی می کند. اطمینان حاصل کنید که به عنوان کاربری که از مراحل قبلی انتخاب کرده اید وارد سیستم شوید. اگر برنامه شما تأیید نشده باشد، ممکن است یک صفحه هشدار مشاهده کنید. در چنین مواردی، می‌توانید روی پیوند نمایش پیشرفته کلیک کنید و روی گزینه Go to PROJECT_NAME (تأیید نشده) کلیک کنید.

  7. بعد از اینکه دامنه ها را تأیید کردید، برای اعطای مجوز، روی دکمه Continue کلیک کنید. مرورگر به https://cloud.google.com/sdk/auth_success می‌رود که نشان می‌دهد احراز هویت با موفقیت انجام شده است. صفحه پیغام زیر را نمایش می دهد:

    Authorization code granted. Close this tab.

    دستور gcloud پیام زیر را چاپ می کند:

    Credentials saved to file: [/****/.config/gcloud/application_default_credentials.json]

    حالا فایل application_default_credentials.json را باز کنید. محتوای آن باید مشابه موارد زیر باشد:

    {
    "account": "",
    "client_id": "******.apps.googleusercontent.com",
    "client_secret": "******",
    "refresh_token": "******",
    "type": "authorized_user",
    "universe_domain": "googleapis.com"
    }
    

پیکربندی کتابخانه مشتری

برگه مربوط به زبان برنامه نویسی خود را برای دستورالعمل های نحوه پیکربندی کتابخانه مشتری خود انتخاب کنید.

جاوا

کلیدهای زیر را در فایل ads.properties خود پیکربندی کنید.

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.

دات نت

می‌توانید نمونه GoogleAdsClient خود را در زمان اجرا، با استفاده از اعتبارنامه‌هایی که از کاربری دریافت کرده‌اید، مقداردهی اولیه کنید.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID",
    OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET",
    OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN",
    ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.

پایتون

کلیدهای زیر را در فایل google-ads.yaml خود پیکربندی کنید.

client_id: INSERT_OAUTH2_CLIENT_ID_HERE
client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
refresh_token: INSERT_REFRESH_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE

برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.

PHP

کلیدهای زیر را در google_ads_php.ini خود پیکربندی کنید.

[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"

[OAUTH2]
clientId = "INSERT_OAUTH2_CLIENT_ID_HERE"
clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE"
refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"

برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.

روبی

کلیدهای زیر را در فایل google_ads_config.rb خود پیکربندی کنید.

  Google::Ads::GoogleAds::Config.new do |c|
     c.client_id = 'INSERT_CLIENT_ID_HERE'
     c.client_secret = 'INSERT_CLIENT_SECRET_HERE'
     c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
     c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
     c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
  end

برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.

پرل

کلیدهای زیر را در فایل googleads.properties خود پیکربندی کنید.

 clientId=INSERT_OAUTH2_CLIENT_ID_HERE
 clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
 refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
 loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
 

برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.

حلقه کردن

با استفاده از یک سرویس گیرنده HTTP برای واکشی نشانه دسترسی OAuth 2.0 شروع کنید. این راهنما از دستور curl استفاده می کند.

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

اکنون می توانید از نشانه دسترسی در تماس های API خود استفاده کنید. مثال زیر نحوه اجرای یک گزارش کمپین را با استفاده از روش GoogleAdsService.SearchStream برای بازیابی کمپین های موجود در حساب خود نشان می دهد. این راهنما جزئیات گزارش را پوشش نمی دهد.

curl -i -X POST https://googleads.googleapis.com/v21/customers/CUSTOMER_ID/googleAds:searchStream \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer ACCESS_TOKEN" \
   -H "developer-token: DEVELOPER_TOKEN" \
   -H "login-customer-id: LOGIN_CUSTOMER_ID" \
   --data-binary "@query.json"

محتویات query.json به شرح زیر است:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}