در گردش کار احراز هویت چند کاربره، شما جریان OAuth خود را برای احراز هویت کاربران خود ایجاد میکنید. انواع مختلفی از برنامهها به عنوان بخشی از مستندات Google Identity مورد بحث قرار گرفتهاند، همراه با پیکربندی پروژه Google Cloud Console که برای پشتیبانی از هر نوع برنامه نیاز دارید. همه این انواع برنامهها توسط Google Ads API پشتیبانی میشوند. جزئیات فنی اضافی که باید در نظر داشته باشید عبارتند از:
برنامه خود را طوری پیکربندی کنید که محدوده OAuth 2.0 زیر را درخواست کند:
https://www.googleapis.com/auth/adwordsممکن است برنامه شما مجبور شود در حالی که کاربر آفلاین است، از طرف او فراخوانیهای API را انجام دهد. یک سناریوی رایج، دانلود معیارهای حساب کاربری به صورت آفلاین برای تولید گزارشها و انجام تجزیه و تحلیل حساب کاربری است. به همین دلیل، توصیه میکنیم درخواست دسترسی آفلاین OAuth را بدهید.
برای تأیید برنامه خود ، فرآیند تأیید برنامه OAuth را تکمیل کنید.
مرور کلی گردش کار
پیادهسازی گردش کار احراز هویت چندکاربره شامل سه مرحله اصلی است:
- هدایت کاربران به صفحه رضایت OAuth: هر کاربر را به نقطه پایانی مجوز OAuth 2.0 گوگل هدایت کنید و درخواست دسترسی آفلاین و دامنه
https://www.googleapis.com/auth/adwordsداشته باشید. - کد مجوز را با توکنها تعویض کنید: پس از اعطای مجوز توسط کاربر، کد مجوز برگشتی را دریافت کرده و آن را با یک توکن دسترسی و یک توکن بهروزرسانی تعویض کنید.
- ذخیره توکنها و مقداردهی اولیه کلاینت در زمان اجرا: توکن بهروزرسانی هر کاربر را به طور ایمن در پایگاه داده خود ذخیره کنید و هنگام مقداردهی اولیه نمونه
GoogleAdsClientخود در زمان اجرا، اعتبارنامههای کاربر را ارسال کنید.
پیکربندی کتابخانه کلاینت
پس از تأیید کاربر و دریافت اعتبارنامههای OAuth 2.0، میتوانید کتابخانه کلاینت را با دنبال کردن دستورالعملهای روی برگه مربوط به زبان برنامهنویسی خود پیکربندی کنید.
جاوا
شما میتوانید نمونه GoogleAdsClient خود را در زمان اجرا، با استفاده از اعتبارنامههایی که از کاربری که حسابهایش را فراخوانیهای API میکنید، دریافت کردهاید، مقداردهی اولیه کنید.
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();
برای گزینههای بیشتر، به راهنمای پیکربندی مراجعه کنید.
دات نت
شما میتوانید نمونه GoogleAdsClient خود را در زمان اجرا، با استفاده از اعتبارنامههایی که از کاربری که حسابهایش را فراخوانیهای API میکنید، دریافت کردهاید، مقداردهی اولیه کنید.
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);
برای گزینههای بیشتر، به راهنمای پیکربندی مراجعه کنید.
پایتون
شما میتوانید نمونه GoogleAdsClient خود را در زمان اجرا، با استفاده از اعتبارنامههایی که از کاربری که حسابهایش را فراخوانیهای API میکنید، دریافت کردهاید، مقداردهی اولیه کنید.
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)
برای گزینههای بیشتر، به راهنمای پیکربندی مراجعه کنید.
پی اچ پی
شما میتوانید نمونه GoogleAdsClient خود را در زمان اجرا، با استفاده از اعتبارنامههایی که از کاربری که حسابهایش را فراخوانیهای API میکنید، دریافت کردهاید، مقداردهی اولیه کنید.
$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();
برای گزینههای بیشتر، به راهنمای پیکربندی مراجعه کنید.
روبی
شما میتوانید نمونه GoogleAdsClient خود را در زمان اجرا، با استفاده از اعتبارنامههایی که از کاربری که حسابهایش را فراخوانیهای API میکنید، دریافت کردهاید، مقداردهی اولیه کنید.
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
برای گزینههای بیشتر، به راهنمای پیکربندی مراجعه کنید.
پرل
شما میتوانید نمونه GoogleAdsClient خود را در زمان اجرا، با استفاده از اعتبارنامههایی که از کاربری که حسابهایش را فراخوانیهای API میکنید، دریافت کردهاید، مقداردهی اولیه کنید.
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");
برای گزینههای بیشتر، به راهنمای پیکربندی مراجعه کنید.
حلقه زدن
با استفاده از یک کلاینت 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 اکنون میتوانید از توکن دسترسی در فراخوانیهای API خود استفاده کنید. مثال زیر نحوه اجرای گزارش کمپین را با استفاده از متد 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 "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"
}