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

في سير عمل مصادقة تعدد المستخدمين، يمكنك إنشاء مسار 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، يمكنك ضبط مكتبة العميل باتّباع التعليمات في علامة التبويب التي تتوافق مع لغة البرمجة التي تستخدمها.

جافا

يمكنك تهيئة مثيل 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 OAuth credentials which provide Google Ads account
        // access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
        .build();

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

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/v25/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"
}