API Gmail, использующий учетную запись службы, получает сообщение об ошибке «Отказано в делегировании» - PullRequest
0 голосов
/ 17 апреля 2019

Я занимаюсь разработкой веб-приложения с использованием Google API. Я использую сервер-сервер, который, очевидно, с учетной записью службы. Я почти закончил.

Теперь я могу добавлять новых пользователей через Google API. Я даже могу создавать и / или предоставлять недавно созданным пользователям доступ к Team Drive через Google API. Это означает, что у меня есть учетная запись службы, которая может выдавать себя за всех пользователей домена.

Проблема: Но почему я получаю ошибки при попытке выдать себя за пользователя через Gmail API? Мне нужно добавить метки и фильтры Gmail для вновь созданных пользователей, но я получаю сообщение об ошибке «Отклонено отклонение». Я что-то пропустил?

Очевидно, у меня уже есть работающие настройки учетной записи службы с соответствующими областями в G Suite. Я полагаю, что userID "me" не подходит, поскольку мое приложение должно выдавать себя за недавно созданного пользователя G Suite. Пожалуйста, поправьте меня, если я ошибаюсь.

$service = new \Google_Service_Gmail($this->client($scopes));

$serviceLabel = new \Google_Service_Gmail_Label();
$serviceLabel->setLabelListVisibility('labelShow');
$serviceLabel->setMessageListVisibility('show');
$serviceLabel->setName($label_name);

try {
    $resp = $service->users_labels->create($email, $serviceLabel);    
} catch (Google_Service_Exception $e) {
   return false;
}

Вот ошибка, которую я получаю

{#398 ▼
  +"statusCode": 403
  +"errors": array:1 [▼
    0 => array:3 [▼
      "domain" => "global"
      "reason" => "forbidden"
      "message" => "Delegation denied for service-account-user@domain.com"
    ]
  ]
  +"message": """
    {
     "error": {
      "errors": [
       {
        "domain": "global",
        "reason": "forbidden",
        "message": "Delegation denied for service-account-user@domain.com"
       }
      ],
      "code": 403,
      "message": "Delegation denied for service-account-user@domain.com"
     }
    }
    """
}

Ожидается, что ярлык Gmail будет добавляться автоматически для каждого пользователя, создаваемого с помощью приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...