fix(vk): friend-code link is the plain vk.com/app link (VK strips iframe query payload)
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 55s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m33s

The contour diagnostic confirmed VK forwards only the signed vk_* params to the iframe — a
custom payload on the app link is dropped (the '#' eaten by the vk.com SPA, a '?' query
stripped), so the friend-code cannot ride the link. The VK share link is now just
vk.com/app<id>; the recipient enters the copied code by hand (VKWebAppCopyText works). The
vkStartParam reader + bootVK routing stay as a no-op, ready for a post-moderation channel.
Removes the temporary deep-link diagnostic.
This commit is contained in:
Ilia Denisov
2026-06-29 22:58:43 +02:00
parent 0ea9764a0d
commit d76f1f4026
5 changed files with 28 additions and 37 deletions
+3 -3
View File
@@ -42,12 +42,12 @@ describe('vkShareLink', () => {
it('returns null outside a VK launch (no vk_app_id)', () => {
vi.stubGlobal('location', { search: '' });
expect(vkShareLink('f123456')).toBeNull();
expect(vkShareLink()).toBeNull();
});
it('wraps the payload in a vk.com/app link as the hash query param', () => {
it('returns the plain vk.com/app link (VK drops a custom query payload, so the code is not carried)', () => {
vi.stubGlobal('location', { search: '?vk_app_id=6736218&vk_user_id=1&sign=x' });
expect(vkShareLink('f123456')).toBe('https://vk.com/app6736218?hash=f123456');
expect(vkShareLink()).toBe('https://vk.com/app6736218');
});
});