مسار عمل المصادقة المتعدّدة المستخدمين

في سير عمل مصادقة تعدد المستخدمين، يمكنك إنشاء مسار OAuth الخاص بك لمصادقة المستخدمين. هناك أنواع متعددة من التطبيقات التي تمت مناقشتها كجزء من مستندات Google Identity، إلى جانب إعدادات مشروع وحدة تحكّم Google API التي تحتاجها لإتاحة كل نوع من أنواع التطبيقات. تتيح Google Ads API جميع أنواع التطبيقات هذه. التفاصيل الفنية الإضافية التي يجب وضعها في الاعتبار هي:

  • اضبط تطبيقك لطلب نطاق OAuth 2.0 التالي:

    https://www.googleapis.com/auth/adwords
    
  • قد يحتاج تطبيقك إلى إجراء طلبات بيانات من واجهة برمجة التطبيقات نيابةً عن المستخدم عندما يكون غير متصل بالإنترنت. من السيناريوهات الشائعة تنزيل مقاييس الحساب بلا إنترنت لإنشاء التقارير وإجراء إحصاءات الحساب. لهذا السبب، ننصح بطلب الوصول إلى OAuth بلا إنترنت.

  • أكمِل عملية التحقّق من تطبيق OAuth ليتم التحقّق من تطبيقك.

نظرة عامة على سير العمل

يتطلّب تنفيذ سير عمل مصادقة متعدّدة المستخدمين ثلاث خطوات رئيسية:

  1. توجيه المستخدمين إلى شاشة طلب الموافقة على OAuth: يجب إعادة توجيه كل مستخدم إلى نقطة نهاية تفويض OAuth 2.0 من Google لطلب نطاق https://www.googleapis.com/auth/adwords والوصول بلا إنترنت. على المستخدمين إجراء المصادقة باستخدام مفتاح مرور لإكمال عملية التفويض وإنشاء رمز مميّز لإعادة التحميل.
  2. تبديل رمز التفويض بالرموز المميّزة: بعد أن يمنح المستخدم الإذن، احصل على رمز التفويض الذي تم إرجاعه واستبدِله برمز مميّز للوصول ورمز مميّز لإعادة التحميل.
  3. تخزين الرموز المميزة وبدء تشغيل العميل في وقت التشغيل: يمكنك تخزين الرمز المميز لإعادة التحميل لكل مستخدم بشكل آمن في مخزن البيانات وتمرير بيانات اعتماد المستخدم عند بدء تشغيل مثيل GoogleAdsClient في وقت التشغيل.

إعداد مكتبة العميل

بعد منح الإذن للمستخدم والحصول على بيانات اعتماد OAuth 2.0، يمكنك ضبط مكتبة البرامج باتّباع التعليمات الواردة في علامة التبويب المقابلة للغة البرمجة التي تستخدمها.

جافا

يمكنك إعداد مثيل GoogleAdsClient في وقت التشغيل، باستخدام بيانات الاعتماد التي حصلت عليها من المستخدم الذي تُجري طلبات بيانات من واجهة برمجة التطبيقات إلى حساباته.

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
        .setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
        .setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the OAuth credentials which provide Google Ads account
        // access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
        .build();

يُرجى الاطّلاع على دليل الإعداد لمعرفة الخيارات الإضافية.

NET.

يمكنك إعداد مثيل GoogleAdsClient في وقت التشغيل، باستخدام بيانات الاعتماد التي حصلت عليها من المستخدم الذي تُجري طلبات بيانات من واجهة برمجة التطبيقات إلى حساباته.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};

GoogleAdsClient client = new GoogleAdsClient(config);

يُرجى الاطّلاع على دليل الإعداد لمعرفة الخيارات الإضافية.

Python

يمكنك إعداد مثيل GoogleAdsClient في وقت التشغيل، باستخدام بيانات الاعتماد التي حصلت عليها من المستخدم الذي تُجري طلبات بيانات من واجهة برمجة التطبيقات إلى حساباته.

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
    "client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
    "client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
    "use_proto_plus": True,
}

client = GoogleAdsClient.load_from_dict(credentials)

يُرجى الاطّلاع على دليل الإعداد لمعرفة الخيارات الإضافية.

PHP

يمكنك إعداد مثيل GoogleAdsClient في وقت التشغيل، باستخدام بيانات الاعتماد التي حصلت عليها من المستخدم الذي تُجري طلبات بيانات من واجهة برمجة التطبيقات إلى حساباته.

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

يُرجى الاطّلاع على دليل الإعداد لمعرفة الخيارات الإضافية.

Ruby

يمكنك إعداد مثيل GoogleAdsClient في وقت التشغيل، باستخدام بيانات الاعتماد التي حصلت عليها من المستخدم الذي تُجري طلبات بيانات من واجهة برمجة التطبيقات إلى حساباته.

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
  config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
  config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
  config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
  config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end

يُرجى الاطّلاع على دليل الإعداد لمعرفة الخيارات الإضافية.

Perl

يمكنك إعداد مثيل GoogleAdsClient في وقت التشغيل، باستخدام بيانات الاعتماد التي حصلت عليها من المستخدم الذي تُجري طلبات بيانات من واجهة برمجة التطبيقات إلى حساباته.

my $api_client = Google::Ads::GoogleAds::Client->new({
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});

my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_HERE");

يُرجى الاطّلاع على دليل الإعداد لمعرفة الخيارات الإضافية.

curl

ابدأ باستخدام عميل 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://oauth2.googleapis.com/token

يمكنك استخدام رمز الدخول في طلبات البيانات من واجهة برمجة التطبيقات. يوضّح المثال التالي كيفية إنشاء تقرير حملة باستخدام طريقة GoogleAdsService.SearchStream لاسترداد الحملات في حسابك. لا يتناول هذا الدليل تفاصيل إعداد التقارير.

curl -i -X POST \
  https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_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"
}