getTossShareLink 커스텀 OG 이미지가 적용되지 않습니다

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

안녕하세요. Apps in Toss 미니앱에서 getTossShareLink()를 이용해 커스텀 OG 이미지를 적용하려고 하는데, 전달한 이미지 대신 기본 Apps in Toss 공유 이미지가 표시되어 문의드립니다.

현재 @apps-in-toss/framework 버전은 2.10.10이며, 아래와 같은 방식으로 호출하고 있습니다.

const shareLink = await getTossShareLink(
intoss-private://appsintoss?_deploymentId=${encodeURIComponent(deploymentId)},
OG_IMAGE_URL,
);

await share({ message: shareLink });

deploymentId는 공식 getSchemeUri()를 통해 최초 진입 스킴의 _deploymentId 값을 가져와 사용하고 있습니다.

OG_IMAGE_URL에는 외부에서 접근 가능한 Firebase Storage HTTPS 이미지 URL을 사용하고 있으며, 이미지는 공식 OG 가이드에 맞춰 1200×600px로 제작했습니다.

SDK 내부 구현도 확인해보았습니다. Sandbox 환경에서는 isMinVersionSupported()가 true를 반환하기 때문에 getTossShareLinkV1() fallback이 아닌 V2 경로를 사용하며, 아래와 같이 ogImageUrl이 Native bridge에 전달되는 것을 확인했습니다.

const { shareLink } = await safePostMessage(‘getTossShareLink’, {
url: path,
ogImageUrl,
});

또한 처음에는 intoss://realtime-weather를 사용해 테스트했으나, 공식 문서의 출시 전 테스트 방법을 확인한 뒤 현재는 QR 테스트로 진입한 스킴의 _deploymentId를 이용하여

intoss-private://appsintoss?_deploymentId=…

형식으로 변경해서 다시 테스트했습니다.

하지만 두 방식 모두 전달한 커스텀 OG 이미지가 표시되지 않고 미니앱의 기본 공유 이미지(앱 아이콘)가 표시됩니다.

최근 테스트에서 생성된 공유 링크:

확인 부탁드리고 싶은 부분은 다음과 같습니다.

Sandbox/콘솔 테스트 환경에서도 getTossShareLink(path, ogImageUrl)의 커스텀 OG 이미지 기능을 지원하는 것이 맞는지
intoss-private://appsintoss?_deploymentId=…를 사용하는 현재 테스트 방식이 올바른지
ogImageUrl에 Firebase Storage의 공개 HTTPS URL을 사용할 수 있는지
현재와 같이 ogImageUrl을 전달했음에도 기본 OG 이미지로 생성되는 경우 추가로 필요한 설정이나 확인해야 할 조건이 있는지

확인 부탁드립니다. 감사합니다.

안녕하세요 :slight_smile:
콘솔 테스트 환경(intoss-private)에서도 정상 동작하는게 맞습니다.
intoss-private://{appName} 으로 테스트해주시면 됩니다.
공개된 https 이미지 경로라면 사용할 수 있는데, ogImageUrl을 받으신 후 어떤 sns채널로 공유주신걸까요 ?

안내해주신 방식대로 수정하여 다시 테스트해보았습니다.

getTossShareLink()의 첫 번째 인자를
intoss-private://realtime-weather
로 변경했고, 두 번째 인자에는 공개된 Firebase Storage HTTPS 이미지 URL을 전달했습니다.

수정 후 새 .ait를 빌드하여 콘솔에 등록하고, 새 테스트 QR로 토스 앱에서 진입한 뒤 카카오톡으로 공유해보았습니다.

하지만 동일하게 커스텀 OG 이미지가 아닌 미니앱 기본 공유 이미지가 표시됩니다.

혹시 추가로 확인해야 할 사항이 있을까요?

혹시 캐싱된 것은 아닐까요?

에서 해당 url의 캐시를 지우고 시도해봐주실 수 있을까요 ?

카카오톡 URL 메타정보 관리에서 캐시 초기화를 진행했으나 동일하여 추가 확인했습니다.

공식 문서의 출시 전 테스트 방식에 맞춰 첫 번째 인자를
intoss-private://appsintoss?_deploymentId=...
형식으로 변경하고, 새 .ait 버전을 등록한 뒤 해당 버전의 QR로 재진입하여 테스트했습니다.

호출 형태는 다음과 같습니다.

getTossShareLink(
'intoss-private://appsintoss?_deploymentId=...',
'https://firebasestorage.googleapis.com/.../OG%20Image%20Custom.png?...'
)

새로 생성된 minion 링크는
https://minion.toss.im/FukxbGxB
입니다.

해당 URL도 카카오 URL 디버거에서 확인했으나 og:image가 전달한 Firebase Storage 이미지가 아니라 기존과 동일하게 s3.apps-in-toss-bucket/appsintoss/share-og/...의 기본 이미지로 응답됩니다.

ogImageUrl이 Native bridge까지 정상 전달되는 것도 확인한 상태입니다.

공식 문서의 _deploymentId 방식에서도 동일하게 커스텀 ogImageUrl이 반영되지 않는데, Sandbox/출시 전 환경에서는 getTossShareLink의 커스텀 OG 이미지가 지원되지 않는 것인지, 또는 별도로 필요한 설정이나 조건이 있는지 확인 부탁드립니다.

한번 확인해보겠습니다!

혹시 언제쯤 답변 받을 수 있을까요? 그때까지 제가 추가로 할 것들은 없을까요?

문제가 될 수 있는 부분을 찾아 확인 중입니다!
빠르게 처리해볼게요 :man_bowing:
별도로 작업해주셔야할 것은 없습니다.

@ko020924 님, 혹시 DM으로 이미지 url 공유주실 수 있을까요 ? 현상 재현이 안되어 테스트해보려합니다.

보냈습니다 확인 부탁드립니다.