У меня есть php код, который получает список учетных записей Google AdWords с использованием библиотеки https://github.com/googleads/googleads-php-lib:
use Google\AdsApi\AdWords\AdWordsSessionBuilder;
use Google\AdsApi\Common\OAuth2TokenBuilder;
use Google\AdsApi\AdWords\AdWordsServices;
use Google\AdsApi\AdWords\v201809\mcm\ManagedCustomerService;
$oAuth2Credential = (new OAuth2TokenBuilder())
->fromFile(__DIR__.'/keys.ini')
->build();
$api = (new AdWordsSessionBuilder())
->fromFile(__DIR__.'/keys.ini')
->withOAuth2Credential($oAuth2Credential);
$session = $api->build();
$adWordsServices = new AdWordsServices();
$managedCustomerService = $adWordsServices->get(
$session,
ManagedCustomerService::class
);
// Create selector.
$selector = new Selector();
$selector->setFields(['CustomerId','Name']);
$selector->setOrdering([new OrderBy('CustomerId', SortOrder::ASCENDING)]);
$selector->setPaging(new Paging(0, 10));
$items = $managedCustomerService->get($selector);
в keys.ini:
[ADWORDS]
developerToken = "XXX"
clientCustomerId = "XXX"
[OAUTH2]
clientId = "XXX"
clientSecret = "XXX"
refreshToken = "XX"
сейчас я пытаюсь сделать то же самое в ruby, используя библиотеку https://github.com/googleads/google-api-ads-ruby/tree/master/adwords_api:
require 'adwords_api'
adwords = AdwordsApi::Api.new()
customer_srv = adwords.service(:ManagedCustomerService, :v201809)
...
в ~ / adwords_api.yml:
---
:authentication:
:method: OAuth2
:oauth2_client_id: XXX
:oauth2_client_secret: XXX
:refresh_token: XXX
:developer_token: XXX
:client_customer_id: XXX
:connection:
:enable_gzip: false
:library:
:log_level: DEBUG
И я получаю сообщение об ошибке:
Authorization credentials are not valid. Edit adwords_api.yml for OAuth2 client ID and secret and run misc/setup_oauth2.rb example to retrieve and store OAuth2 tokens.
See this wiki page for more details:
https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2
, в то время как все мои учетные данные в php и ruby совпадают.
Есть идеи, как это исправить?