Quy trình xác thực nhiều người dùng

Trong quy trình xác thực nhiều người dùng, bạn sẽ xây dựng quy trình OAuth của riêng mình để xác thực người dùng. Có nhiều loại ứng dụng được thảo luận trong tài liệu về Google Identity, cùng với cấu hình dự án Google API Console mà bạn cần để hỗ trợ từng loại ứng dụng. Google Ads API hỗ trợ tất cả các loại ứng dụng này. Sau đây là những thông tin kỹ thuật khác mà bạn cần lưu ý:

  • Định cấu hình ứng dụng của bạn để yêu cầu phạm vi OAuth 2.0 sau:

    https://www.googleapis.com/auth/adwords
    
  • Ứng dụng của bạn có thể phải thực hiện lệnh gọi API thay mặt cho người dùng khi họ không có mạng. Một trường hợp phổ biến là tải các chỉ số tài khoản xuống để tạo báo cáo và phân tích tài khoản khi không có mạng. Do đó, bạn nên yêu cầu quyền truy cập ngoại tuyến OAuth.

  • Hoàn tất quy trình xác minh ứng dụng OAuth để xác minh ứng dụng của bạn.

Tổng quan về quy trình công việc

Quy trình triển khai quy trình xác thực nhiều người dùng bao gồm 3 bước chính:

  1. Chuyển hướng người dùng đến màn hình xin phép OAuth: Chuyển hướng từng người dùng đến điểm cuối uỷ quyền OAuth 2.0 của Google để yêu cầu phạm vi https://www.googleapis.com/auth/adwords và quyền truy cập khi không có mạng. Người dùng phải xác thực bằng khoá truy cập để hoàn tất quy trình uỷ quyền và tạo mã làm mới.
  2. Đổi mã uỷ quyền lấy mã thông báo: Sau khi người dùng cấp quyền, hãy thu thập mã uỷ quyền được trả về và đổi mã đó lấy mã truy cập và mã làm mới.
  3. Lưu trữ mã thông báo và khởi chạy ứng dụng khách trong thời gian chạy: Lưu trữ an toàn mã làm mới của mỗi người dùng trong kho dữ liệu của bạn và truyền thông tin đăng nhập của người dùng khi khởi chạy thực thể GoogleAdsClient trong thời gian chạy.

Cấu hình thư viện ứng dụng

Sau khi uỷ quyền cho người dùng và lấy thông tin xác thực OAuth 2.0, bạn có thể định cấu hình thư viện ứng dụng bằng cách làm theo hướng dẫn trên thẻ tương ứng với ngôn ngữ lập trình của bạn.

Java

Bạn có thể khởi chạy thực thể GoogleAdsClient trong thời gian chạy bằng thông tin đăng nhập mà bạn đã lấy được từ người dùng có tài khoản mà bạn đang thực hiện lệnh gọi 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();

Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn khác.

.NET

Bạn có thể khởi động thực thể GoogleAdsClient trong thời gian chạy bằng thông tin đăng nhập mà bạn nhận được từ người dùng có tài khoản mà bạn đang thực hiện lệnh gọi 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);

Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn khác.

Python

Bạn có thể khởi động thực thể GoogleAdsClient trong thời gian chạy bằng thông tin đăng nhập mà bạn nhận được từ người dùng có tài khoản mà bạn đang thực hiện lệnh gọi 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)

Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn khác.

PHP

Bạn có thể khởi động thực thể GoogleAdsClient trong thời gian chạy bằng thông tin đăng nhập mà bạn nhận được từ người dùng có tài khoản mà bạn đang thực hiện lệnh gọi 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();

Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn khác.

Ruby

Bạn có thể khởi động thực thể GoogleAdsClient trong thời gian chạy bằng thông tin đăng nhập mà bạn nhận được từ người dùng có tài khoản mà bạn đang thực hiện lệnh gọi 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

Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn khác.

Perl

Bạn có thể khởi chạy thực thể GoogleAdsClient trong thời gian chạy bằng thông tin đăng nhập mà bạn đã lấy được từ người dùng có tài khoản mà bạn đang thực hiện lệnh gọi 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");

Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn khác.

curl

Bắt đầu bằng cách sử dụng một máy khách HTTP để tìm nạp mã truy cập OAuth 2.0. Hướng dẫn này sử dụng lệnh 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

Bạn có thể sử dụng mã truy cập trong các lệnh gọi API. Ví dụ sau đây cho thấy cách chạy báo cáo chiến dịch bằng phương thức GoogleAdsService.SearchStream để truy xuất các chiến dịch trong tài khoản của bạn. Hướng dẫn này không đề cập đến thông tin chi tiết về báo cáo.

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"

Nội dung của query.json như sau:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}