Привет. Есть сайт на Nextjs/App router для скачивания покупки фото. Я хочу внедрить функцию поделиться фото в вконтакте для авторизованного пользователя. Для обхода проблем с авторизацией сделал роут /public/vk-share?share_image_url={{url}}.
Расскидал следующие мета данные в файле страницы /public/vk-share:
export async function generateMetadata({
searchParams,
}: Props): Promise<Metadata> {
const imageUrl = (await searchParams)[
EnPublicVkShareQueryParams.SHARE_IMAGE_URL
]
return {
title: 'Поделиться фото',
description: 'Фото для публикации ВКонтакте',
openGraph: {
title: 'Поделиться фото',
description: 'Фото для публикации ВКонтакте',
url: `https://${ENV_FRONTEND_DOMAIN}${ROUTES.PUBLIC_VK_SHARE({ [EnPublicVkShareQueryParams.SHARE_IMAGE_URL]: imageUrl }).toString()}`,
siteName: 'React app',
images: [
{
url: imageUrl,
width: 383,
height: 253,
alt: 'Shared image',
},
],
type: 'article',
},
other: {
image_src: imageUrl,
},
}
}
В защищенной авторизацией странице есть ссылка поделиться фото в вк:
<Link
href={`https://vk.com/share.php?url=https://${ENV_FRONTEND_DOMAIN}/public/vk-share?share_image_url=${url}`}
>...</Link>
Ссылка кидает на страницу вк "Поделиться ссылкой". Но при отправке ссылки не отображается картинка
Скорее всего я использую не тот api вк для отправки картинки, и скорее всего не так использую мета-теги но не могу найти информацию для этой функции в интернете. Был бы признателен если кто-то рассказал как это делать правильно.