기존에 보였던 파이어베이스 다이나믹 링크 미리보기가 며칠전부터 보이지 않습니다

https://seoulexchange.page.link/CKMmRhMCEtmeuMMX7
위 링크를 2024년 8월 22일에 공유 하였을 땐 미리보기와 타이틀이 보였습니다.
오늘(26일)에 다시 카카오톡에 링크를 보내니 미리보기가 보이지 않고
카카오계정 에서 디버그 해보니 Invalid URL. 이라고 나옵니다.

왜 안보이는지 알고싶습니다.
감사합니다.

아래는 curl 결과입니다
faq인가에서 content type이 맞지 않으면 안보일 수 있다는걸 보았는데, 이 문제일까요?
그렇다면, 왜 22일엔 보인것일까요
참고로 대략 2년간 firebase dynamiclink를 만들어서 카카오톡 미리보기로 계속 써오고 있었습니다

curl -v https://seoulexchange.page.link/mr9QHxwNNY5N7Fxg8

  • Trying 142.250.196.97:443…
  • Connected to seoulexchange.page.link (142.250.196.97) port 443
  • ALPN: curl offers h2,http/1.1
  • (304) (OUT), TLS handshake, Client hello (1):
  • CAfile: /etc/ssl/cert.pem
  • CApath: none
  • (304) (IN), TLS handshake, Server hello (2):
  • (304) (IN), TLS handshake, Unknown (8):
  • (304) (IN), TLS handshake, Certificate (11):
  • (304) (IN), TLS handshake, CERT verify (15):
  • (304) (IN), TLS handshake, Finished (20):
  • (304) (OUT), TLS handshake, Finished (20):
  • SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256
  • ALPN: server accepted h2
  • Server certificate:
  • subject: CN=*.page.link
  • start date: Jul 30 12:54:37 2024 GMT
  • expire date: Oct 22 12:54:36 2024 GMT
  • subjectAltName: host “seoulexchange.page.link” matched cert’s “*.page.link”
  • issuer: C=US; O=Google Trust Services; CN=WR2
  • SSL certificate verify ok.
  • using HTTP/2
  • [HTTP/2] [1] OPENED stream for https://seoulexchange.page.link/mr9QHxwNNY5N7Fxg8
  • [HTTP/2] [1] [:method: GET]
  • [HTTP/2] [1] [:scheme: https]
  • [HTTP/2] [1] [:authority: seoulexchange.page.link]
  • [HTTP/2] [1] [:path: /mr9QHxwNNY5N7Fxg8]
  • [HTTP/2] [1] [user-agent: curl/8.4.0]
  • [HTTP/2] [1] [accept: /]

GET /mr9QHxwNNY5N7Fxg8 HTTP/2
Host: seoulexchange.page.link
User-Agent: curl/8.4.0
Accept: /

< HTTP/2 302
< content-type: application/binary
< vary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site
< cache-control: no-cache, no-store, max-age=0, must-revalidate
< pragma: no-cache
< expires: Mon, 01 Jan 1990 00:00:00 GMT
< date: Mon, 26 Aug 2024 08:00:55 GMT
< location: https://seoulexchange.page.link/s?socialDescription=서울거래+비상장+첫+거래+시,+최소+2만원+~+최대+24만원+상당의+비상장주식을+이벤트+대상자+전원에게+지급해요!+이벤트+예산+소진+시+조기+종료될+수+있으니+서두르세요!&socialImageUrl=https://psx-static.s3.amazonaws.com/media/promotion/%25E1%2584%2591%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25A9%25E1%2584%2586%25E1%2585%25A9%25E1%2584%2589%25E1%2585%25A7%25E1%2586%25AB_%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25BC%25E1%2584%258F%25E1%2585%25B3_%25E1%2584%258A%25E1%2585%25A5%25E1%2586%25B7%25E1%2584%2582%25E1%2585%25A6%25E1%2584%258B%25E1%2585%25B5%25E1%2586%25AF_%25E1%2584%2589%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2592%25E1%2585%25A1%25E1%2586%25AB_%25E1%2584%258E%25E1%2585%25A5%25E1%2586%25BA%25E1%2584%2586%25E1%2585%25A2%25E1%2584%2586%25E1%2585%25A2_900x600.png&socialTitle=[신한X서울거래]+첫+거래라면?+최소+2만원+~+24만원+혜택!
< cross-origin-opener-policy: unsafe-none
< content-security-policy: require-trusted-types-for ‘script’;report-uri //DurableDeepLinkUi/cspreport
< content-security-policy: script-src ‘nonce-XcpT4q9yvkbueux4UgBP1w’ ‘unsafe-inline’;object-src ‘none’;base-uri ‘self’;report-uri /
/DurableDeepLinkUi/cspreport;worker-src ‘self’
< accept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factors, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version
< permissions-policy: ch-ua-arch=, ch-ua-bitness=, ch-ua-full-version=, ch-ua-full-version-list=, ch-ua-model=, ch-ua-wow64=, ch-ua-form-factors=, ch-ua-platform=, ch-ua-platform-version=*
< cross-origin-resource-policy: same-site
< server: ESF
< content-length: 0
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< alt-svc: h3=“:443”; ma=2592000,h3-29=“:443”; ma=2592000
<

  • Connection #0 to host seoulexchange.page.link left intact
    ➜ psx git:(hotfix/PW-3253-kofia에-자�) curl -v -X GET https://seoulexchange.page.link/mr9QHxwNNY5N7Fxg8
    Note: Unnecessary use of -X or --request, GET is already inferred.
  • Trying 142.250.196.97:443…
  • Connected to seoulexchange.page.link (142.250.196.97) port 443
  • ALPN: curl offers h2,http/1.1
  • (304) (OUT), TLS handshake, Client hello (1):
  • CAfile: /etc/ssl/cert.pem
  • CApath: none
  • (304) (IN), TLS handshake, Server hello (2):
  • (304) (IN), TLS handshake, Unknown (8):
  • (304) (IN), TLS handshake, Certificate (11):
  • (304) (IN), TLS handshake, CERT verify (15):
  • (304) (IN), TLS handshake, Finished (20):
  • (304) (OUT), TLS handshake, Finished (20):
  • SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256
  • ALPN: server accepted h2
  • Server certificate:
  • subject: CN=*.page.link
  • start date: Jul 30 12:54:37 2024 GMT
  • expire date: Oct 22 12:54:36 2024 GMT
  • subjectAltName: host “seoulexchange.page.link” matched cert’s “*.page.link”
  • issuer: C=US; O=Google Trust Services; CN=WR2
  • SSL certificate verify ok.
  • using HTTP/2
  • [HTTP/2] [1] OPENED stream for https://seoulexchange.page.link/mr9QHxwNNY5N7Fxg8
  • [HTTP/2] [1] [:method: GET]
  • [HTTP/2] [1] [:scheme: https]
  • [HTTP/2] [1] [:authority: seoulexchange.page.link]
  • [HTTP/2] [1] [:path: /mr9QHxwNNY5N7Fxg8]
  • [HTTP/2] [1] [user-agent: curl/8.4.0]
  • [HTTP/2] [1] [accept: /]

GET /mr9QHxwNNY5N7Fxg8 HTTP/2
Host: seoulexchange.page.link
User-Agent: curl/8.4.0
Accept: /

< HTTP/2 302
< content-type: application/binary
< vary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site
< cache-control: no-cache, no-store, max-age=0, must-revalidate
< pragma: no-cache
< expires: Mon, 01 Jan 1990 00:00:00 GMT
< date: Mon, 26 Aug 2024 08:04:02 GMT
< location: https://seoulexchange.page.link/s?socialDescription=서울거래+비상장+첫+거래+시,+최소+2만원+~+최대+24만원+상당의+비상장주식을+이벤트+대상자+전원에게+지급해요!+이벤트+예산+소진+시+조기+종료될+수+있으니+서두르세요!&socialImageUrl=https://psx-static.s3.amazonaws.com/media/promotion/%25E1%2584%2591%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25A9%25E1%2584%2586%25E1%2585%25A9%25E1%2584%2589%25E1%2585%25A7%25E1%2586%25AB_%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25BC%25E1%2584%258F%25E1%2585%25B3_%25E1%2584%258A%25E1%2585%25A5%25E1%2586%25B7%25E1%2584%2582%25E1%2585%25A6%25E1%2584%258B%25E1%2585%25B5%25E1%2586%25AF_%25E1%2584%2589%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2592%25E1%2585%25A1%25E1%2586%25AB_%25E1%2584%258E%25E1%2585%25A5%25E1%2586%25BA%25E1%2584%2586%25E1%2585%25A2%25E1%2584%2586%25E1%2585%25A2_900x600.png&socialTitle=[신한X서울거래]+첫+거래라면?+최소+2만원+~+24만원+혜택!
< content-security-policy: require-trusted-types-for ‘script’;report-uri //DurableDeepLinkUi/cspreport
< content-security-policy: script-src ‘nonce-lNSHMq-v-yHowuOVu3VLkg’ ‘unsafe-inline’;object-src ‘none’;base-uri ‘self’;report-uri /
/DurableDeepLinkUi/cspreport;worker-src ‘self’
< cross-origin-opener-policy: unsafe-none
< accept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factors, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version
< cross-origin-resource-policy: same-site
< permissions-policy: ch-ua-arch=, ch-ua-bitness=, ch-ua-full-version=, ch-ua-full-version-list=, ch-ua-model=, ch-ua-wow64=, ch-ua-form-factors=, ch-ua-platform=, ch-ua-platform-version=*
< server: ESF
< content-length: 0
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< alt-svc: h3=“:443”; ma=2592000,h3-29=“:443”; ma=2592000
<

  • Connection #0 to host seoulexchange.page.link left intact

사용하신 다이나믹 링크 https://seoulexchange.page.link 에서 카카오 스크랩 서버 요청에 429 Too many requests 응답 하고 있습니다.

다이나믹 링크는 IP당 하루 20만회 요청 제한이 있습니다.
아래 문서를 참고하여 할당량 증가 요청하시거나 파이어베이스 고객센터로 문의 부탁드립니다.

https://firebase.google.com/docs/dynamic-links/rest?hl=ko

1개의 좋아요

안녕하세요
현재는 정상적으로 공유 이미지가 보이고 있습니다.
그런데 카카오의 이미지 미리보기 관련 서버에 대해 궁금한점이 있습니다.
제가 만약 1만명이 참여한 오픈카톡방에 firebase dynamiclink를 올리면, 카카오의 서버가 미리보기를 생성하기 위해 page.link 도메인을 1회 호출하는것인가요 아니면 카톡방의 멤버 수 만큼 1만회 호출하는것인가요?
1일 quota 20만을 넘었다는게 궁금해서 문의 드립니다.
참고로 해당 시점에 firebase dynamic link 서비스에 장애가 있었다고 합니다 (ref: https://status.firebase.google.com/incidents/Q51i82jx6yV7p2Fid6Km)
혹시 page.link 도메인에 접근할 때 timeout이나 500일 시 retry 하는 로직에 의해 여러번 호출 됐을 수 도 있을까요?

감사합니다.

안녕하세요.

사용자에 따른 호출 수
공유된 URL의 meta 정보와 미리보기 이미지는 일정 시간동안 캐시 됩니다.
이론적으로 캐시 기간 내 1회 접근 하나,
캐시를 위해 요청을 block 하지 않으므로 많은 사용자가 동시에 URL을 보고 있는 방에서는 서비스의 응답 속도 및 사용자 수에 따라 수회에서 수십회 접근할 수도 있습니다.

retry 여부
이번과 같이 서비스측 응답이 명확한 경우 미리보기 이미지 생성을 위해 다시 시도하지 않습니다.

1개의 좋아요