Я хочу настроить просмотр 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
, Со страницы: 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
следуя инструкциям контроля доступа на уровне ресурсов.
(выделение добавлено)
Других решений пока нет …