WEB/Server

[Airbridge] Api ํ˜ธ์ถœ ์ˆ˜ ํŠธ๋ž˜ํ‚น

kite707 2023. 7. 1.

๊ฐœ์š”

api ํ˜ธ์ถœ ์ˆ˜๋ฅผ ํŠธ๋ž˜ํ‚นํ•˜๊ธฐ ์œ„ํ•ด airbridge๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ๋ž˜ airbridge๋Š” ๊ด‘๊ณ  ์„ฑ๊ณผ ๋ถ„์„์„ ํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉ๋˜๋Š” ํˆด์ด์ง€๋งŒ ์ด๋ฒคํŠธ๋ฅผ ์—์–ด๋ธŒ๋ฆฟ์ง€ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ณ  ์ด๋ฅผ ์‰ฝ๊ฒŒ ์กฐํšŒํ•˜๊ณ  ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

api ํ˜ธ์ถœ ์ˆ˜๋ฅผ ํŠธ๋ž˜ํ‚นํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ์•ˆ์„ ์ฐพ๋˜ ์ค‘ ์—์–ด๋ธŒ๋ฆฟ์ง€๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ฐพ์ง€ ๋ชปํ–ˆ๊ธฐ์— ์ด๋Ÿฐ ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฆฌ์ž๋Š” ์ทจ์ง€๋กœ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์ „ ์ค€๋น„

๋จผ์ € ์—์–ด๋ธŒ๋ฆฟ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜ ๊ฐ„๋‹จํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์—์–ด๋ธŒ๋ฆฟ์ง€ ํšŒ์›๊ฐ€์ž…
  2. ์•ฑ ๋“ฑ๋ก

์—์–ด๋ธŒ๋ฆฟ์ง€๋Š” ์•„๋ž˜ ํŽ˜์ด์ง€์—์„œ ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒ์œผ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ํšŒ์›๊ฐ€์ž… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://www.airbridge.io/ko

 

์—์–ด๋ธŒ๋ฆฟ์ง€ | ๋ชจ๋ฐ”์ผ ์•ฑ ์„ฑ์žฅ์„ ๊ทน๋Œ€ํ™”ํ•˜์„ธ์š”.

ํ•ฉ๋ฆฌ์ ์ธ ๋น„์šฉ์˜ ์˜ฌ์ธ์› ๋ชจ๋ฐ”์ผ ๋งˆ์ผ€ํŒ… ํŒจํ‚ค์ง€๋กœ ์„œ๋น„์Šค๋ฅผ ์„ฑ์žฅ์‹œ์ผœ๋ณด์„ธ์š”.

www.airbridge.io

์ดํ›„ ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์—์„œ ์•ฑ์„ ๋“ฑ๋กํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ €๋Š” website๋ฅผ ๊ณ ๋ฅด๊ณ  ์„œ๋น„์Šค๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์›นํŽ˜์ด์ง€ URL์„ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ, ๋‹จ์ˆœํžˆ api ํ˜ธ์ถœ ์ˆ˜๋ฅผ ํŠธ๋ž˜ํ‚น ํ•˜๋Š” ๋ชฉ์ ์„ ์œ„ํ•ด์„œ๋ฉด ๊ผญ ์˜ฌ๋ฐ”๋ฅธ ์›นํŽ˜์ด์ง€๋ฅผ ๋„ฃ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ์–ด์ฐจํ”ผ ์—์–ด๋ธŒ๋ฆฟ์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” api๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์—์–ด๋ธŒ๋ฆฟ์ง€์—์„œ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๋งŒ์ผ sdk๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์„œ๋น„์Šค ๋‚ด ๊ด‘๊ณ  ์„ฑ๊ณผ ํŠธ๋ž˜ํ‚น ๋“ฑ ๋” ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์•ฑ/URL๋ฅผ ๋„ฃ์–ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ฑ์„ ๋“ฑ๋กํ•˜๊ณ  ๋‚˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋“ฑ๋กํ•œ ์•ฑ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

Api ํ˜ธ์ถœ ์ˆ˜ ํŠธ๋ž˜ํ‚นํ•˜๊ธฐ

์ด์ œ ์—์–ด๋ธŒ๋ฆฟ์ง€์˜ Server To Server Event Api๋ฅผ ํ™œ์šฉํ•ด ์—์–ด๋ธŒ๋ฆฟ์ง€ ์„œ๋ฒ„๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ „์†กํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น api์˜ docs๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://help.airbridge.io/ko/references/s2s-event#%EC%9D%B8%EC%9B%B9-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EC%A0%84%EC%86%A1%ED%95%98%EA%B8%B0

 

Server To Server Event | Airbridge Help Center

Server to Server ๋ฐฉ์‹์œผ๋กœ ์ธ์•ฑ/์ธ์›น ์ด๋ฒคํŠธ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

help.airbridge.io

 

์•ฑ ์ด๋ฆ„์„ ํด๋ฆญํ•ด ์‹ค์ œ ์•ฑ ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ด๋™ํ•œ ๋’ค Settings-Tokens์—์„œ API ํ† ํฐ์„ ๋ฏธ๋ฆฌ ๋ณต์‚ฌํ•ด๋‘ก๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด header์— APIํ† ํฐ์„, ๋งํฌ์— appName์„ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์œ„ docs์— ์˜ˆ์‹œ๋กœ ์ฃผ์–ด์ง„ payload๋ฅผ ์ด์šฉํ•ด ํ•„์ˆ˜ ์š”์†Œ๊ฐ€ ์•„๋‹Œ๊ฒƒ๋“ค์„ ์ง€์›Œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹จ์ˆœํ™”ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ClientId์™€ ShortId๋Š” ์˜ˆ์‹œ๋กœ ์ฃผ์–ด์ง„ payload์— ์žˆ๋Š” ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๋˜ Label์€ ์ดํ›„ ์ด๋ฒคํŠธ๋ฅผ ๊ทธ๋ฃนํ™” ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋‹ˆ ๊ฐœ๋ฐœํ™˜๊ฒฝ๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. (dev, prod ๋“ฑ)

const body = {
    eventTimestamp: Date.now(),
    browser: {
      clientID: '05609013-bb5a-4594-bbc3-832cb1b87072',
    },
    eventData: {
      shortID: "aef04",
      goal: {
        category,
        label: config.airbridgeLabel,  //(dev, prod ๋“ฑ)
      },
    },
  };

์ €๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์— ์ด๋ฒคํŠธ ์ด๋ฆ„์„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. (signUp, login ๋“ฑ) ์ดํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์›ํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

const sendApiEvent = async (category: string) => {
  const body = {
    eventTimestamp: Date.now(),
    browser: {
      clientID: '05609013-bb5a-4594-bbc3-832cb1b87072',
    },
    eventData: {
      shortID: "aef04",
      goal: {
        category,
        label: config.airbridgeLabel,  //(dev, prod ๋“ฑ)
      },
    },
  };
  const head = {
    headers: { Authorization: `Bearer ${config.airbridgeToken}` },
  };
  try {
    const result = await axios.post(
      `https://api.airbridge.io/events/v1/apps/${config.airbridgeAppName}/web/9320`,
      body,
      head,
    );
    return result;
  } catch (error) {
    throw error
  }
};

์ด๋ ‡๊ฒŒ ํ•ด์„œ ์ „์†ก๋œ ์ด๋ฒคํŠธ๋“ค์€ ๋Œ€์‹œ๋ณด๋“œ์˜ Reports-Actuals์—์„œ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„์—์„œ๋Š” ๋ฉ”ํŠธ๋ฆญ์—์„œ WEB2_NFT_CREATE์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ๋ฏธ๋ฆฌ ์ง€์ •ํ•œ ์ด๋ฒคํŠธ ์ด๋ฆ„๋“ค์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ฒ˜์Œ์œผ๋กœ ๋ณด๋‚ด๋Š” ์ด๋ฒคํŠธ๋Š” ๋ฐ˜์˜๋˜๊ธฐ๊นŒ์ง€ 5-10๋ถ„ ์ •๋„, ์ด๋ฏธ ๋ณด๋‚ธ ์  ์žˆ๋Š” api์˜ ํ˜ธ์ถœ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ธฐ ๊นŒ์ง€๋Š” ์•ฝ 30์ดˆ์ •๋„๊ฐ€ ์†Œ์š”๋˜๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฃน ๋ฐ”์ด์—์„œ Event Label๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ด๋ฒคํŠธ ๋ผ๋ฒจ๋ณ„๋กœ ์ด๋ฒคํŠธ ํšŸ์ˆ˜๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€