У меня есть рабочий чат-робот Google, который может отправить сообщение определенному room
на что подписан чатбот, используя следующий код:
$client = new Google_Client();
$client->setAuthConfig('../service-account.json');
$client->addScope('https://www.googleapis.com/auth/chat.bot');
$service = new Google_Service_HangoutsChat($client);
$message = new Google_Service_HangoutsChat_Message();
$message->setText('@Leon Vismer Testing a message.');
$message->setAnnotations([$annotation]);
$service->spaces_messages->create('spaces/SPACE_REFERENCE', $message);
Однако то, что я пытаюсь сделать, это направить сообщение конкретному пользователю внутри room
используя упоминание. Я пытался использовать аннотации, но это не похоже на работу. Я получаю уведомление о новом сообщении в комнате, но @mention не является надлежащей аннотацией для конкретного пользователя.
Я пытался с помощью:
$user = new Google_Service_HangoutsChat_User([
'name' => 'users/NUMBER_TO_THE_USER',
'displayName' => 'Leon Vismer',
'type' => 'HUMAN',
]);
$annotation = new Google_Service_HangoutsChat_Annotation([
'type' => 'USER_MENTION',
'startIndex' => 1,
'length' => strlen('@Leon Vismer'),
'userMention' => new Google_Service_HangoutsChat_UserMentionMetadata([
'user' => $user,
'type' => 'MENTION',
])
]);
Может ли чат-бот таким образом инициировать разговор с конкретным пользователем, как этот?
Задача ещё не решена.
Других решений пока нет …