как использовать refresh_token от другого пользователя в моем приложении для Google AdWords? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть аккаунт менеджера Google AdWords для управления рекламным аккаунтом нашего пользователя на моей платформе.

Пользователь должен предоставить мне идентификатор клиента (рекламный аккаунт) , если он хочет авторизовать меня.

  • Я могу пригласить любого идентификатора клиента для ссылки, когда я использую refresh_token , получаемый при подключении моего аккаунта Google.

  • но если пользователь использует refresh_token , получаемый при подключении его учетной записи Google, он получит USER_PERMISSION_DENIED.

мой вопрос

Разве только refresh_token из учетной записи менеджера может пригласить кого-то с помощью API AdWords?

Итак, что может сделать refresh_token от пользователя / менеджера?

node-adwords это библиотека, которую я использую.

-------- 11/12 обновлено --------

let user = new AdwordsUser({
  "client_id": "xxxxxxxxxxx.apps.googleusercontent.com",
  "client_secret": "xxxxxxxxxxx",
  "developerToken": "xxxxxxxxxx",
  "userAgent": "xxxx",
  "clientCustomerId": "mcc-account id",
  "debug": "true"
});

// linked customer.
user.credentials.refresh_token = 'refreshToken' (user's or mcc-account's?)

const managedCustomerService = user.getService('ManagedCustomerService', apiVersion);
const managerCustomerId = +user.credentials.clientCustomerId.split('-').join('');
const clientCustomerId = +clientId.split('-').join('');

const operation = {
  operator: 'ADD',
  operand: {
    managerCustomerId,
    clientCustomerId,
    linkStatus: 'PENDING',
    pendingDescriptiveName: 'invitation',
    isHidden: false,
  }
}

managedCustomerService.mutateLink({operations: [operation]}, (error, result)....

1 Ответ

0 голосов
/ 12 ноября 2018
  1. Да, только учетная запись менеджера может отправлять приглашения другому пользователю AdWords, который хочет быть управляемым.

  2. Это официальный google adwords doc , связанный с этим вопросом. Вам необходимо прочитать раздел об аутентификации (в нижней части страницы). Существует диаграмма, которая показывает иерархию управления учетными записями AdWords. Другими словами, вы можете выполнять операции с учетной записью пользователя через токен менеджера (на какие учетные записи это повлияет, зависит от того, что adwords user id указано в ваших учетных данных пользователя new AdwordsUser({clientCustomerId: 'xxxxxxxxxx'})).

Также вам не нужно опасаться:

+clientId.split('-').join('');

node-adwords API lib или adwords работает как с xxxxxxxxxx, так и с xxx-xxx-xxxx

Надеюсь, это немного поможет.

...