Мы рекомендуем использовать клиентские библиотеки Google API с API Display & Video 360. Использование клиентских библиотек избавляет от необходимости вручную отправлять HTTP-запросы и анализировать ответы. Клиентские библиотеки обеспечивают лучшую интеграцию с различными языками программирования, улучшенную безопасность и поддержку вызовов, требующих авторизации пользователя.
API Display & Video 360 построен на основе HTTP и JSON. При желании вы можете использовать любой стандартный HTTP-клиент для отправки запросов и анализа ответов.
Установите клиентскую библиотеку.
Мы предлагаем клиентские библиотеки, поддерживающие API Display & Video 360 на различных языках программирования. Полный список клиентских библиотек вы найдете на странице «Примеры и библиотеки» .
В руководствах для разработчиков по API Display & Video 360 представлены фрагменты кода на следующих языках:
Помимо фрагментов кода в наших руководствах, мы предлагаем полные примеры интеграции на этих языках. Примеры можно найти в нашем репозитории GitHub с примерами Display & Video 360 API .
Настройте свой клиент.
Имея учетные данные OAuth 2.0 и установленную клиентскую библиотеку , вы готовы использовать API Display & Video 360. Вот как авторизовать и настроить клиент:
Java
Импортируйте необходимые библиотеки.
import static java.nio.charset.StandardCharsets.UTF_8; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.util.Utils; import com.google.api.services.displayvideo.v4.DisplayVideo; import com.google.api.services.displayvideo.v4.DisplayVideo.Advertisers; import com.google.api.services.displayvideo.v4.model.Advertiser; import com.google.api.services.displayvideo.v4.model.ListAdvertisersResponse; import java.io.Reader; import java.nio.file.Files; import java.nio.file.Paths;Загрузите файл с секретами клиента и сгенерируйте учетные данные для авторизации.
При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в вашем браузере. Прежде чем принять его, убедитесь, что вы вошли в систему с учетной записью Google, имеющей доступ к Display & Video 360. Ваше приложение получит разрешение на доступ к данным от имени той учетной записи, которая в данный момент авторизована. Более подробную информацию см. в нашем руководстве по концепции разрешений пользователей .
// Read client secrets file. GoogleClientSecrets clientSecrets; try (Reader reader = Files.newBufferedReader(Paths.get(path-to-client-secrets-file), UTF_8)) { clientSecrets = GoogleClientSecrets.load(Utils.getDefaultJsonFactory(), reader); } // Generate authorization credentials. // Set up the authorization code flow. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( Utils.getDefaultTransport(), Utils.getDefaultJsonFactory(), clientSecrets, oauth-scopes) .build(); Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");Создайте авторизованного API-клиента.
// Create authorized API client. DisplayVideo service = new DisplayVideo.Builder(credential.getTransport(), credential.getJsonFactory(), credential) .setApplicationName("displayvideo-java-installed-app-sample") .build();
Python
Импортируйте необходимые библиотеки.
from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient import discoveryЗагрузите файл с секретами клиента и сгенерируйте учетные данные для авторизации.
При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в вашем браузере. Прежде чем принять его, убедитесь, что вы вошли в систему с учетной записью Google, имеющей доступ к Display & Video 360. Ваше приложение получит разрешение на доступ к данным от имени той учетной записи, которая в данный момент авторизована. Более подробную информацию см. в нашем руководстве по концепции разрешений пользователей .
# Set up a flow object to create the credentials using the # client secrets file and OAuth scopes. credentials = InstalledAppFlow.from_client_secrets_file( path-to-client-secrets-file, oauth-scopes).run_local_server()Создайте авторизованного API-клиента.
# Build the discovery document URL. discovery_url = f'https://displayvideo.googleapis.com/$discovery/rest?version=v4' # Build the API service. service = discovery.build( 'displayvideo', 'v4', discoveryServiceUrl=discovery_url, credentials=credentials)
PHP
В этом примере предполагается, что вы используете PHP со встроенным веб-сервером и настроили учетные данные для перенаправления на соответствующую веб-страницу. Например, этот код в файле index.php можно запустить с помощью следующей команды, настроив учетные данные для перенаправления на http://localhost:8000 после аутентификации:
php -S localhost:8000 -t ./Загрузите и установите PHP-клиент Google API.
Предпочтительный метод — использование Composer :
composer require google/apiclient:^2.18.2 google/apiclient-services:=0.396.0После установки обязательно включите автозагрузчик:
require_once '/path/to/your-project/vendor/autoload.php';Создайте объект Google_Client.
$client = new Google_Client();Настройте клиент, при необходимости перенаправьте на URL-адрес аутентификации и получите токен доступа.
При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в вашем браузере. Прежде чем принять его, убедитесь, что вы вошли в систему с учетной записью Google, имеющей доступ к Display & Video 360. Ваше приложение получит разрешение на доступ к данным от имени той учетной записи, которая в данный момент авторизована. Более подробную информацию см. в нашем руководстве по концепции разрешений пользователей .
// Set up the client. $client->setApplicationName('DV360 API PHP Samples'); $client->addScope(oauth-scope); $client->setAccessType('offline'); $client->setAuthConfigFile(path-to-client-secrets-file); // If the code is passed, authenticate. If not, redirect to authentication page. if (isset($_GET['code'])) { $client->authenticate($_GET['code']); } else { $authUrl = $client->createAuthUrl(); header('Location: ' . $authUrl); } // Exchange authorization code for an access token. $accessToken = $client->getAccessToken(); $client->setAccessToken($accessToken);Создайте клиент для сервиса Display & Video 360 API.
$service = new Google_Service_DisplayVideo($client);