카카오톡 대화창에서 주소 공유시 meta 값을 제대로 불러오지 못하고 있습니다

안녕하세요! 오늘도 수고하십니다.
몇 일 전부터 (10~20일은 된 것 같음) firebase hosting을 통해 cloud function의 redirect 로 연결되던 링크의 meta 값을 불러오는 것이 제대로 작동 하지 않습니다.

https://wgmi.kr/hlwj 이 주소를 일반적인 브라우저로 불러와서 html을 까보면 meta 값이 잘 들어갔음을 볼 수 있습니다.

  <!-- meta -->
  <meta property="og:type" content="website">
  <meta property="og:url" content="wagmipost.xyz">
  <meta property="og:title" content="와그미 포스트">
  <meta property="og:description" content="웹3를 경험하는 가장 쉬운 방법">
  <meta property="og:image" content="https://storage.googleapis.com/wagmi-post.appspot.com/Trending/Projects/t5AY49yAMzaPjpq7Y7GN/ZdW8lXhwxbYZvA6v1zrm.png?GoogleAccessId=wagmi-post%40appspot.gserviceaccount.com&Expires=1704067200&Signature=gvzobU6AkDbq%2Fd2TH4dSRMuJSZ0Kmp9uDPqww%2FBHYRl9xAjMA3RrT57ymh%2BmzlG6SbUiyeX7d%2BRnJAid%2BDe9gmssOBhZ0%2FCaY3BR4%2FNu9uXfk0vXN8DyxVmbzf50LY%2B73cTmMrb6VIad3jsOC%2FUFJx8AtpXhjnB4OCNEDQaNejTKGvXwjCir8fJIILX9503HbbCWOzXviUhrn2M3mSwR9iLQ87FgAqrh29trdKNMUt2t1aO16m6VfIzvnfX1EwG45R7SsPXKSe03jf2QnZzHBRNva8U8lOaGmxiIzeLyFrhn9oh7baJ47zgP63yZsFnGYEodp%2F8S6PIsAG6ypXPk8A%3D%3D">

메타 값을 확인하는 다른 사이트에서는 제대로 나오기도 합니다. https://www.heymeta.com/url/wgmi.kr/hlwj

카카오계정 여기서 확인해 본 결과로 보면, (카카오톡에서 공유해도 동일)
해당 meta 값들이 불러와 지지 않았는데 서버, 코드에서 확인된 문제는 다음과 같습니다.

카카오톡에서 링크를 올렸을때 서버로 들어오는 http request에서 ‘originalUrl’ 값으로 리디렉트가 시작된 url을 확인 할 수 있었는데 지금은 그 값이 넘어 오지 있지 않아 문제가 되고 있습니다. (’/hlwj’이 아닌 undefined 로 표시됨)

이전에는 잘 작동을 했는데, ㅠㅠ 혹시 그동안 카카오에서 meta 값을 보여주기 위해 리디렉션을 따라가는 알고리즘의 변경이 있었는지, 입력한 오리지널 주소를 originalUrl이나 x-original-url 같은 헤더 값으로 받아 올 수 있게 해주실 수 있을지 문의 드립니다.

감사합니다.

안녕하세요.

<meta property="og:url" content="wagmipost.xyz">

위와 같이 처리된 부분을 아래와 같이 처리하기거나 og:url태그 자체를 제거하시면 정상 처리 될 것 같아요.

<meta property="og:url" content="https://wgmi.kr/hlwj"/>

og:url태그가 있으면 해당 주소의 메타를 가져와 표시합니다.

참고로, 이러한 처리는 ogp에서 안내하는 표준 처리방식입니다.

https://ogp.me/

1개의 좋아요
<meta property="og:url" content="https://wgmi.kr/hlwj"/>

감사! 압도적 감사!! 해결 했습니다.
이전에는 그냥 되었었는데 og:url을 좀 더 스트릭하게 지키게 된 것 같네요.
사실 아직도 이해가 잘 안갑니다.
og:url 값을 읽었다는 것은 해당 페이지를 불러왔다는 것인데, 작동이 안되고 있을 시기에는 /hlwj 값을 읽어오기 위한 originalUrl은 undefined가 나오고 있었거든요.

아마 제가 로그을 잘 못 봤던 것 같습니다. 말씀하신 대로라면 요청이 2번 들어가는 것으로 보이네요. og:url 값을 가지고 오고, 한번 더 og:url 값으로 요청해서 무언가를 비교하고. og:url 에사 메타를 가지고 올 수 없거나 같은 값이면 가장 처음 og:url을 불러 왔던 페이지의 메타를 쓰는 것 같습니다. originalUrl이 undefined가 날 때에는 fallback으로 작동한 것이라 제대로된 리디렉션이 아니여서 originalUrl이 안넘어 왔을 수도 있겠네요.

해결 되었다는 것이 가장 중요하지요. tim.l 님 너무나 감사드립니다. 하트를 드립니다.

1개의 좋아요