From c5c36a8aba6cadc06e36ca3ad342d100b4902c48 Mon Sep 17 00:00:00 2001 From: Paulo Castellano Date: Thu, 2 Apr 2026 18:29:56 -0300 Subject: [PATCH] fix: use publicaly_available_post_id from TikTok status to build video URL --- app/Services/Social/TikTokPublisher.php | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/Services/Social/TikTokPublisher.php b/app/Services/Social/TikTokPublisher.php index 4cc72f9f..0f7ec730 100644 --- a/app/Services/Social/TikTokPublisher.php +++ b/app/Services/Social/TikTokPublisher.php @@ -154,11 +154,12 @@ private function publishVideo(PostPlatform $postPlatform, $media, ?string $conte } // Wait for processing and get final status - $this->waitForPublishStatus($publishId); + $statusData = $this->waitForPublishStatus($publishId); + $postId = data_get($statusData, 'publicaly_available_post_id.0'); return [ - 'id' => $publishId, - 'url' => $this->buildTikTokUrl($postPlatform->socialAccount), + 'id' => $postId ?? $publishId, + 'url' => $this->buildTikTokUrl($postPlatform->socialAccount, $postId), ]; } @@ -215,11 +216,12 @@ private function publishPhotos(PostPlatform $postPlatform, $mediaCollection, ?st } // Wait for processing and get final status - $this->waitForPublishStatus($publishId); + $statusData = $this->waitForPublishStatus($publishId); + $postId = data_get($statusData, 'publicaly_available_post_id.0'); return [ - 'id' => $publishId, - 'url' => $this->buildTikTokUrl($postPlatform->socialAccount), + 'id' => $postId ?? $publishId, + 'url' => $this->buildTikTokUrl($postPlatform->socialAccount, $postId), ]; } @@ -262,10 +264,14 @@ private function waitForPublishStatus(string $publishId, int $maxAttempts = 20): return ['publish_id' => $publishId]; } - private function buildTikTokUrl(SocialAccount $account): ?string + private function buildTikTokUrl(SocialAccount $account, ?string $postId = null): ?string { $username = $account->username; + if ($username && $postId) { + return "https://www.tiktok.com/@{$username}/video/{$postId}"; + } + if ($username) { return "https://www.tiktok.com/@{$username}"; }