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

در گردش کار احراز هویت چند کاربره، شما جریان OAuth خود را برای احراز هویت کاربران خود ایجاد می‌کنید. انواع مختلفی از برنامه‌ها به عنوان بخشی از مستندات Google Identity مورد بحث قرار گرفته‌اند و پیکربندی پروژه Google Cloud Console که برای پشتیبانی از آن نوع برنامه نیاز دارید، مورد نیاز است. همه این انواع برنامه‌ها توسط Google Ads API پشتیبانی می‌شوند. جزئیات فنی اضافی که باید در نظر داشته باشید عبارتند از:

  1. برای دسترسی به API گوگل ادز، باید برنامه خود را طوری پیکربندی کنید که برای محدوده زیر احراز هویت کند:

    https://www.googleapis.com/auth/adwords
    
  2. Your app may have to make API calls on behalf of the user while they are offline. A common scenario is to download account metrics offline to generate reports and perform account analytics. For this reason, we recommend requesting OAuth offline access .

  3. شما باید فرآیند تأیید برنامه OAuth را طی کنید و برنامه خود را تأیید کنید.

پیکربندی کتابخانه کلاینت

پس از تأیید کاربر و دریافت اعتبارنامه‌های OAuth 2.0، می‌توانید کتابخانه کلاینت را با دنبال کردن دستورالعمل‌های روی برگه مربوط به زبان برنامه‌نویسی خود پیکربندی کنید.

جاوا

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

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.

دات نت

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

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);

برای گزینه‌های بیشتر، به راهنمای پیکربندی مراجعه کنید.

پایتون

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

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)

See the configuration guide for additional options.

پی اچ پی

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

$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();

برای گزینه‌های بیشتر، به راهنمای پیکربندی مراجعه کنید.

روبی

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

  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

برای گزینه‌های بیشتر، به راهنمای پیکربندی مراجعه کنید.

پرل

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

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");

برای گزینه‌های بیشتر، به راهنمای پیکربندی مراجعه کنید.

حلقه زدن

با استفاده از یک کلاینت 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/v24/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"
}