diff --git a/src/Symfony/Component/Notifier/Bridge/GoogleChat/GoogleChatTransport.php b/src/Symfony/Component/Notifier/Bridge/GoogleChat/GoogleChatTransport.php index 41666a7cf182e..735744e5e6da4 100644 --- a/src/Symfony/Component/Notifier/Bridge/GoogleChat/GoogleChatTransport.php +++ b/src/Symfony/Component/Notifier/Bridge/GoogleChat/GoogleChatTransport.php @@ -96,16 +96,22 @@ protected function doSend(MessageInterface $message): SentMessage $threadKey = $opts->getThreadKey() ?: $this->threadKey; - $options = $opts->toArray(); $url = sprintf('https://%s/v1/spaces/%s/messages?key=%s&token=%s%s', $this->getEndpoint(), $this->space, urlencode($this->accessKey), urlencode($this->accessToken), - $threadKey ? '&threadKey='.urlencode($threadKey) : '' + $threadKey ? '&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD' : '' ); + + $body = array_filter($opts->toArray()); + + if ($threadKey) { + $body['thread']['threadKey'] = $threadKey; + } + $response = $this->client->request('POST', $url, [ - 'json' => array_filter($options), + 'json' => $body, ]); try { diff --git a/src/Symfony/Component/Notifier/Bridge/GoogleChat/Tests/GoogleChatTransportTest.php b/src/Symfony/Component/Notifier/Bridge/GoogleChat/Tests/GoogleChatTransportTest.php index c8df301ca96c6..b6cbf8176d55c 100644 --- a/src/Symfony/Component/Notifier/Bridge/GoogleChat/Tests/GoogleChatTransportTest.php +++ b/src/Symfony/Component/Notifier/Bridge/GoogleChat/Tests/GoogleChatTransportTest.php @@ -116,11 +116,11 @@ public function testSendWithOptions() ->method('getContent') ->willReturn('{"name":"spaces/My-Space/messages/abcdefg.hijklmno"}'); - $expectedBody = json_encode(['text' => $message]); + $expectedBody = json_encode(['text' => $message, 'thread' => ['threadKey' => 'My-Thread']]); $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expectedBody): ResponseInterface { $this->assertSame('POST', $method); - $this->assertSame('https://chat.googleapis.com/v1/spaces/My-Space/messages?key=theAccessKey&token=theAccessToken%3D&threadKey=My-Thread', $url); + $this->assertSame('https://chat.googleapis.com/v1/spaces/My-Space/messages?key=theAccessKey&token=theAccessToken%3D&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD', $url); $this->assertSame($expectedBody, $options['body']); return $response;
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: