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

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

  1. للوصول إلى Google Ads API، عليك ضبط تطبيقك للمصادقة على النطاق التالي:

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

  3. عليك إكمال عملية التحقّق من تطبيق OAuth والحصول على شهادة اعتماد لتطبيقك.

إعداد مكتبة البرامج

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

Java

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

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId(OAUTH_CLIENT_ID)
        .setClientSecret(OAUTH_CLIENT_SECRET)
        .setRefreshToken(REFRESH_TOKEN)
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the developer token which enables API access.
        .setDeveloperToken(DEVELOPER_TOKEN)
        // Sets the OAuth credentials which provide Google Ads account access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
        .build();
``` See the [configuration guide][java-config-guide] for additional options.

NET.

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

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

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

Python

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

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "REFRESH_TOKEN",
    "client_id": "OAUTH_CLIENT_ID",
    "client_secret": "OAUTH_CLIENT_SECRET"}

client = GoogleAdsClient.load_from_dict(credentials)

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

PHP

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

$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();

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

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

Ruby

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

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

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

Perl

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

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

my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");

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

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://www.googleapis.com/oauth2/v3/token

يمكنك الآن استخدام رمز الدخول في طلبات البيانات من واجهة برمجة التطبيقات. يوضّح المثال التالي كيفية عرض تقرير عن الحملة باستخدام الطريقة 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"
}