Код: Выделить всё
google.apps.chat_v1). Я намерен написать код, который будет:
[list]
[*]Получать данные от Pub/Sub с сообщением и адресом электронной почты
[*]Создайте новое пространство DIRECT_MESSAGE[*]Отправьте пользователю сообщение в чате
[/list]
Отправка сообщений в существующие пространства работает нормально, но я просто не могу придумать, как создать новое пространство.
Вот код настройки, который я тестирую:
Код: Выделить всё
from google.apps import chat_v1
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/chat.bot',
'https://www.googleapis.com/auth/chat.spaces.create',
'https://www.googleapis.com/auth/chat.memberships']
creds = service_account.Credentials.from_service_account_file('service-account.json')
client = chat_v1.ChatServiceClient(
credentials=creds,
client_options={'scopes': SCOPES },
)
Код: Выделить всё
client.set_up_spaceСогласно документации: чтобы создать DM между вызывающим пользователем и вызывающим приложением, установите для Space.singleUserBotDm значение true и не указывайте членство. Но с помощью следующего кода я все равно неудивительно, что получаю ошибку «Не поддерживается»:
Код: Выделить всё
>>> request = chat_v1.SetUpSpaceRequest(space=chat_v1.Space(space_type=chat_v1.Space.SpaceType.DIRECT_MESSAGE, single_user_bot_dm=True))
>>> client.set_up_space(request)
google.api_core.exceptions.PermissionDenied:
403 This method doesn't support service account authentication.
Authenticate with a user account.
Код: Выделить всё
client.create_spaceКод: Выделить всё
>>> request = chat_v1.CreateSpaceRequest(space=chat_v1.Space(space_type=chat_v1.Space.SpaceType.SPACE, display_name='Test Space'))
>>> client.create_space(request)
google.api_core.exceptions.InvalidArgument:
400 Missing or malformed resource name in the request.
Make sure the customer id resource name follows this format: customers/{customer}'
Код: Выделить всё
CreateSpaceRequestНа данный момент я немного застрял в том, что делать дальше. Буду признателен за некоторые советы.
После этого я увидел, что на странице Chat Auth написано, что «аутентификация приложения» не поддерживается при создании пространств, но документация противоречит этому, говоря, что вызывающее приложение может создать DM для пользователя, поэтому я совсем не уверен, что здесь возможно, а что нет.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ce-account