Это работает для некоторых пользователей, но не работает для других из-за ошибки 403 Forbidden.
Код: Выделить всё
{
"error": {
"code": 403,
"message": "Permission denied to perform the requested action on the specified resource, or the resource doesn't exist.",
"status": "PERMISSION_DENIED"
}
}
Мой код создает стандартный вызов RestTemplate к конечной точке Google Chat API. userConfiguredSpaceId является динамическим в зависимости от профиля пользователя.
Код: Выделить всё
@Service
public class GoogleChatService {
public void sendMessage(String message, String userConfiguredSpaceId) {
String accessToken = getServiceAccountAccessToken();
String url = "https://chat.googleapis.com/v1/spaces/" + userConfiguredSpaceId + "/messages";
HttpHeaders headers = new HttpHeaders();
headers.setBearerAuth(accessToken);
// ... build HttpEntity
// This line throws the 403 Forbidden
restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
}
}
- Моя учетная запись службы успешно проходит аутентификацию.
- Важно отметить, что если пользователь, не прошедший проверку, меняет spaceId в своем профиле на заведомо исправный spaceId (который работает для меня), уведомление проходит успешно.
Мой вопрос:
Правильно ли сделать вывод, что эта ошибка 403 вызвана одной из этих двух проблем с конфигурацией?
- SpaceId, хранящийся в профиле сбойного пользователя, недействителен (например, опечатка или из удаленного пространства).
- SpaceId равен действителен, но моя учетная запись службы (client_email) не была добавлена в качестве участника в это конкретное пространство чата.
Подробнее здесь: https://stackoverflow.com/questions/798 ... fic-spaces
Мобильная версия