Ошибка 403. Ошибка отправки тестового сообщения в Cloud PubSub: пользователь не авторизован для выполнения этого действия.

Я хочу настроить просмотр push-уведомлений, но получаю ответ об ошибке. Какое разрешение мне нужно?

Запрос:

// Google API
$client = getClient();

// POST request
$ch = curl_init('https://www.googleapis.com/gmail/v1/users/me/watch');

curl_setopt_array($ch, array(
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer ' . $client->getAccessToken()['access_token'],
'Content-Type: application/json'
),
CURLOPT_POSTFIELDS => json_encode(array(
'topicName' => 'projects/xxxx/topics/xxxx',
'labelIds' => ["INBOX"]
))
));

Отклик:

{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Error sending test message to Cloud PubSub projects/xxxx/topics/xxxx : User not authorized to perform this action."}
],
"code": 403,
"message": "Error sending test message to Cloud PubSub projects/xxxx/topics/xxxx : User not authorized to perform this action."}
}

Больше деталей:

  • Используемая область GMAIL_READONLY,
  • Подпись и тема существуют, и они были созданы в одной консоли.
  • Я попытался опубликовать новое сообщение с консоли, и это сработало.

1

Решение

Со страницы: https://developers.google.com/gmail/api/guides/push#grant_publish_rights_on_your_topic

Cloud Pub / Sub требует, чтобы вы предоставили права Gmail для публикации
уведомления к вашей теме.

Для этого вам необходимо предоставить права на публикацию
ServiceAccount: [email protected]. Ты можешь сделать
это с помощью интерфейса прав доступа Cloud Pub / Sub Developer Console
следуя инструкциям контроля доступа на уровне ресурсов.

(выделение добавлено)

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]