๐Ÿธminzzi
Minzzi์•ผ
๐Ÿธminzzi
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (132)
    • ์˜ค๋ฅ˜ํ•ด๊ฒฐ (14)
    • FE (36)
      • Next.js (17)
      • React (4)
      • React Native (0)
      • TypeScript (1)
      • JavaScript (14)
    • BE (0)
      • Nest.js (0)
    • ๋ฐ๋ธŒ์ฝ”์Šค (7)
    • ์›น ํ”„๋กœ์ ํŠธ (5)
    • CS (28)
      • Algorithm (5)
      • Python (4)
      • C++ (2)
      • Operating System (4)
      • Computer Networking (3)
      • Data Structure (1)
      • Machine Learning (3)
      • Tip (6)
    • Github (4)
    • Flutter (3)
      • ํ”„๋กœ์ ํŠธ (3)
    • Private (3)
      • ํšŒ๊ณ  (7)
      • ๋ฉด์ ‘ (17)
    • ๊ฐœ๋ฐœ๋„์„œ (7)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ด๋ฒคํŠธ๋ฃจํ”„
  • react
  • layout shift
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ํž™์˜์—ญ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…
  • ์‹คํ–‰์ปจํ…์ŠคํŠธ
  • ์ฝœ์Šคํƒ
  • ์‹คํ–‰์ปจํƒ์ŠคํŠธ
  • ๋ ‰์‹œ์ปฌ
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™”
  • SSR
  • ํ˜ธ์ด์ŠคํŒ…
  • ๋ฉด์ ‘
  • ๋ชจ๋˜๋ฆฌ์•กํŠธ๋”ฅ๋‹ค์ด๋ธŒ
  • ์˜ค๋ธ”์™„
  • ์›์‹œํƒ€์ž…
  • reflow
  • next.js

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๐Ÿธminzzi

Minzzi์•ผ

์˜ค๋ฅ˜ํ•ด๊ฒฐ

api.channel.io API ๊ฐ€์ ธ์˜ค๊ธฐ ์—๋Ÿฌ ํ•ด๊ฒฐ - plugin key

2024. 6. 14. 18:35

์ž˜๋งŒ ๋˜๋˜ ๋™์•„๋ฆฌ ์›น์‚ฌ์ดํŠธ๊ฐ€ ๊ฐ‘์ž๊ธฐ POST ํ˜ธ์ถœ ์ค‘์— ์•„๋ž˜์™€ ๊ฐ™์€ 403 forbidden ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๋‹ค. 

{type: "constraintUrlError", status: 403, errors: [{message: "this url is constraint"}],…}
errors : [{message: "this url is constraint"}]
language : "ko"
status : 403
type : "constraintUrlError"

constraintUrlError์— ๋Œ€ํ•ด์„œ ๊ฒ€์ƒ‰๋„ ํ•ด๋ดค์ง€๋งŒ ๋งˆ๋•…ํ•œ ๋‹ต์ด ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—ญ์‹œ, ์˜ค๋ฅ˜๋ฅผ ์ž์„ธํžˆ ๋“ค์—ฌ๋‹ค ๋ด์•ผํ•œ๋‹ค. ์˜ค๋ฅ˜์— ์•„๋ž˜์™€ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ€ ์žˆ์—ˆ๋‹ค. 

https://api.channel.io/front/v6/elastic/plugins/{pluginKey}/boot 403 (Forbidden)

channel.io๋ผ๋Š” ๊ณณ์—์„œ ์ธ์ฆ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ ๊ฒƒ์ธ๋ฐ, ์‚ฌ์‹ค ๋‚˜๋Š” ์ด๋•Œ๊นŒ์ง€๋งŒ ํ•ด๋„ ๋™์•„๋ฆฌ ์›น์‚ฌ์ดํŠธ์—์„œ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ์ฑ„๋„ํ†ก์„ ๋– ์˜ฌ๋ฆฌ์ง€๋„ ๋ชปํ–ˆ๋‹ค. ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ channel.io๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๊ณ  ์ฑ„๋„ํ†ก์—์„œ ์ œ๊ณต๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ๋‚˜์„œ์•ผ ์š”์ฆ˜ ์‚ฌ์ดํŠธ ๋“ค์–ด๊ฐˆ ๋•Œ๋งˆ๋‹ค ์ฑ„๋„ํ†ก ์•„์ด์ฝ˜์ด ๋œจ๊ณ  ์žˆ์ง€ ์•Š์•˜์Œ์„ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์ฑ„๋„ํ†ก ์—ฐ๋™ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ ๊ฒƒ์ž„์„ ํ™•์ธํ•˜๊ณ , plugin-key๊ฐ€ ํ˜„์žฌ ์ผ์น˜ํ•˜๋Š” ์ง€ ํ™•์ธํ•ด๋ดค๋Š”๋ฐ, pulginkey๊ฐ€ ์žฌ๋ฐœ๊ธ‰ ๋˜์—ˆ๋˜ ๊ฒƒ์ด์—ˆ๋‹ค.

 

๋ฐ”๋€ ํ‚ค๋ฅผ ๋ณด๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์ฑ„๋„ํ†ก์—์„œ ์ œ๊ณตํ•˜๋Š” ๋™์•„๋ฆฌ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์— ์ ‘์†ํ•œ๋‹ค.

์ผ๋ฐ˜์„ค์ • > ๋ฒ„ํŠผ ์„ค์น˜ ๋ฐ ์„ค์ • > ์ฑ„๋„ํ†ก ๋ฒ„ํŠผ ์„ค์น˜ ์—์„œ plugin key ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๊ณ 

์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋Š” <๊ธฐ๋ณธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ>์—์„œ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ณต์‚ฌํ•œ ์ฝ”๋“œ๋ฅผ index.html์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

<script>
      (function () {
        var w = window;
        if (w.ChannelIO) {
          return w.console.error("ChannelIO script included twice.");
        }
        var ch = function () {
          ch.c(arguments);
        };
        ch.q = [];
        ch.c = function (args) {
          ch.q.push(args);
        };
        w.ChannelIO = ch;
        function l() {
          if (w.ChannelIOInitialized) {
            return;
          }
          w.ChannelIOInitialized = true;
          var s = document.createElement("script");
          s.type = "text/javascript";
          s.async = true;
          s.src = "https://cdn.channel.io/plugin/ch-plugin-web.js";
          var x = document.getElementsByTagName("script")[0];
          if (x.parentNode) {
            x.parentNode.insertBefore(s, x);
          }
        }
        if (document.readyState === "complete") {
          l();
        } else {
          w.addEventListener("DOMContentLoaded", l);
          w.addEventListener("load", l);
        }
      })();

      ChannelIO("boot", {
        pluginKey: "๋ฐœ๊ธ‰๋ฐ›์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ‚ค",
      });
    </script>

 

ํ”Œ๋Ÿฌ๊ทธ์ธ ํ‚ค๋ฅผ ๋‹ค์‹œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ €์žฅํ•˜๋‹ˆ ์˜ค๋ฅ˜๋„ ์‚ฌ๋ผ์ง€๊ณ  ์ž˜ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.


์ฒ˜์Œ์—๋Š” ์ฑ„๋„ํ†ก๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜๋ผ๋Š” ์ƒ๊ฐ๋„ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— API ์—ฐ๋™ํ•˜๋Š” ๋ถ€๋ถ„์ด๋‚˜ firebase ์—ฐ๋™ ์ฝ”๋“œ ๋“ฑ ๊ด€๋ จ์—†๋Š” ์ฝ”๋“œ๋งŒ ๊ฒ€ํ† ํ•˜๋ฉฐ ์—„์ฒญ ์‚ฝ์งˆ์„ ํ–ˆ๋‹ค... ์•ž์œผ๋กœ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์„ ๋•Œ ๊ผผ๊ผผํžˆ ํ™•์ธํ•˜๊ณ  ์—๋Ÿฌ๋ฅผ ํ†ตํ•ด ์ตœ๋Œ€ํ•œ ๋งŽ์€ ํžŒํŠธ๋ฅผ ์–ป์–ด์•ผ ๊ฒ ๋‹ค.

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'์˜ค๋ฅ˜ํ•ด๊ฒฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Express.js CORS ์˜ค๋ฅ˜ ํ•ด๊ฒฐ  (0) 2024.07.28
zsh: command not found: nvm ํ•ด๊ฒฐ  (0) 2024.07.19
TypeError: Cannot destructure property '๋ณ€์ˆ˜๋ช…' of 'req.body' as it is undefined.  (0) 2024.06.02
express์—์„œ API ๊ตฌํ˜„์‹œ URL parameters ๋ฐ›๋Š” ๋ฐฉ๋ฒ•  (0) 2024.05.29
Node.js์—์„œ .env ๋ณ€์ˆ˜ ์•ˆ๋ถˆ๋Ÿฌ์™€์ง  (0) 2024.05.24
    '์˜ค๋ฅ˜ํ•ด๊ฒฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • Express.js CORS ์˜ค๋ฅ˜ ํ•ด๊ฒฐ
    • zsh: command not found: nvm ํ•ด๊ฒฐ
    • TypeError: Cannot destructure property '๋ณ€์ˆ˜๋ช…' of 'req.body' as it is undefined.
    • express์—์„œ API ๊ตฌํ˜„์‹œ URL parameters ๋ฐ›๋Š” ๋ฐฉ๋ฒ•
    ๐Ÿธminzzi
    ๐Ÿธminzzi

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”