Craft FunctionsใจCraft Counterใงๅฝ“ใŸใ‚ŠไธŠ้™ๆ•ฐใฎใ‚ใ‚‹ใใ˜ๅผ•ใๆ–ฝ็ญ–ใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹

Craft FunctionsใจCraft Counterใ‚’ๅˆฉ็”จใ—ใฆๅฝ“ใŸใ‚ŠไธŠ้™ๆ•ฐใ‚’่€ƒๆ…ฎใ—ใŸใใ˜ๅผ•ใๆ–ฝ็ญ–ใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ๆ–นๆณ•ใซใคใ„ใฆ็ดนไป‹ใ—ใพใ™ใ€‚

  • Soichiro Yamaguchi
  • Solution
  • 10 May, 2024

ใ“ใ‚“ใซใกใฏใ€Customer Engineerใฎๅฑฑๅฃใงใ™๏ผๅ…ˆๆ—ฅใ€ๅๆŽขๅตใ‚ณใƒŠใƒณใฎๅŠ‡ๅ ด็‰ˆๆœ€ๆ–ฐไฝœใ‚’่ฆณใซ่กŒใใพใ—ใŸใ€‚ใƒฉใ‚นใƒˆ3ๅˆ†ใง้ฉšใใฎๆ–ฐไบ‹ๅฎŸใŒใƒปใƒปใƒปใ€‚ๅพนๅคœใงไบˆ็ฟ’ใ—ใŸใŠใ‹ใ’ใงใ€ใจใฆใ‚‚ๆฅฝใ—ใ‚ใพใ—ใŸ๏ผ

ใ•ใฆๆœฌ่จ˜ไบ‹ใงใฏใ€KARTEใฎๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใจCraftใ‚’็ต„ใฟๅˆใ‚ใ›ใฆใ€ไธŠ้™ใŒ่จญๅฎšใ•ใ‚ŒใŸๅฝ“ใŸใ‚Šๆ•ฐใ‚’ๆŒใคใใ˜ๅผ•ใๆ–ฝ็ญ–ใฎๅฎŸ่ฃ…ใ™ใ‚‹ๆ–นๆณ•ใ‚’ใ”็ดนไป‹ใ—ใพใ™ใ€‚

KARTEใฎๆจ™ๆบ–ๆฉŸ่ƒฝใฎใฟใ‚’ไฝฟ็”จใ—ใฆใใ˜ๅผ•ใใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ๅ ดๅˆใ€ๅฝ“ใŸใ‚ŠใŒๅ‡บใŸๅ›žๆ•ฐใ‚’ใ‚ซใ‚ฆใƒณใƒˆใ™ใ‚‹ใ“ใจใŒๅ›ฐ้›ฃใงใ™ใ€‚ใŸใจใˆใ‚ซใ‚ฆใƒณใƒˆใงใใŸใจใ—ใฆใ‚‚ใ€ไธŠ้™ๆ•ฐใซ้”ใ—ใŸ้š›ใซ้ฉๅˆ‡ใช้€š็Ÿฅใ‚’่กŒใ„ใ€ๆ‹…ๅฝ“่€…ใŒใ‚ฟใ‚คใƒ ใƒชใƒผใซใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅœๆญขใ•ใ›ใ‚‹ใ‚ชใƒšใƒฌใƒผใ‚ทใƒงใƒณใŒๅฟ…่ฆใซใชใ‚Šใพใ™ใ€‚

ใ—ใ‹ใ—ใ€Craft FunctionsใจCraft Counterใ‚’ๆดป็”จใ™ใ‚‹ใ“ใจใงใ€ๅฝ“ใŸใ‚ŠใŒๅ‡บใŸๅ›žๆ•ฐใ‚’่‡ชๅ‹•ใง้›†่จˆใ—ใ€ๅฝ“ใŸใ‚ŠใŒไธŠ้™ๆ•ฐใซ้”ใ—ใŸๅ ดๅˆใซไฝ•ใ‚‰ใ‹ใฎๅ‡ฆ็†ใ‚’่กŒใ†ใ‚ˆใ†ใชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅฎŸ่ฃ…ใงใใพใ™ใ€‚

ใ“ใฎๆ–นๆณ•ใ‚’็”จใ„ใ‚‹ใ“ใจใงใ€้‹็”จใฎๆ‰‹้–“ใ‚’ๅ‰Šๆธ›ใ—ใคใคใ€ใƒฆใƒผใ‚ถใƒผใซ้ฉๅˆ‡ใชใใ˜ๅผ•ใๆ–ฝ็ญ–ใ‚’ๆไพ›ใ™ใ‚‹ใ“ใจใŒๅฏ่ƒฝใซใชใ‚Šใพใ™ใ€‚ๆœฌ่จ˜ไบ‹ใงใฏใ€ใใฎๅ…ทไฝ“็š„ใชๅฎŸ่ฃ…ๆ‰‹้ †ใซใคใ„ใฆ่ฉณใ—ใใ”็ดนไป‹ใ—ใพใ™ใ€‚

ใ‚ขใ‚ฆใƒˆใƒ—ใƒƒใƒˆใ‚คใƒกใƒผใ‚ธ

ๆœฌ่จ˜ไบ‹ใง็ดนไป‹ใ™ใ‚‹ใใ˜ๅผ•ใๆ–ฝ็ญ–ใฎๆœ€็ต‚็š„ใชใ‚ขใ‚ฆใƒˆใƒ—ใƒƒใƒˆใฏใ€ไปฅไธ‹ใฎใ‚คใƒกใƒผใ‚ธๅ›ณใฎ้€šใ‚Šใงใ™ใ€‚

ใใ˜ๅผ•ใๆ–ฝ็ญ–ใฎใ‚ขใ‚ฆใƒˆใƒ—ใƒƒใƒˆ

ใ“ใฎใ‚คใƒกใƒผใ‚ธใฏใ€ใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰่ฆ‹ใˆใ‚‹ใใ˜ๅผ•ใใฎ็ตๆžœ็”ป้ขใ‚’่กจใ—ใฆใŠใ‚Šใ€ๅฝ“ใŸใ‚Šใ‚„ใƒใ‚บใƒฌใŒ็›ดๆ„Ÿ็š„ใซ็†่งฃใงใใ‚‹ๆŽฅๅฎขใ‚ขใ‚ฏใ‚ทใƒงใƒณใซใชใฃใฆใ„ใพใ™ใ€‚

ใ•ใ‚‰ใซใ€ใ‚ทใ‚นใƒ†ใƒ ใฎๅ…จไฝ“ๆง‹ๆˆใ‚’็คบใ—ใŸๅ›ณใ‚’ไปฅไธ‹ใซ็คบใ—ใพใ™ใ€‚

ใ‚ทใ‚นใƒ†ใƒ ๆง‹ๆˆ

ใ“ใฎๅ›ณใฏใ€ใƒฆใƒผใ‚ถใƒผใฎใ‚ขใ‚ฏใ‚ทใƒงใƒณใซๅŸบใฅใ„ใฆCraft FunctionsใŒใฉใฎใ‚ˆใ†ใซๅ‹•ไฝœใ—ใ€ๅฝ“ใŸใ‚ŠใŒๅ‡บใŸๅ›žๆ•ฐใ‚’็ฎก็†ใ—ใคใคใ€็ตๆžœใจใ—ใฆๅฝ“ใŸใ‚ŠใพใŸใฏใƒใ‚บใƒฌใ‚’่ฟ”ใ™ใฎใ‹ใ‚’็คบใ—ใฆใ„ใพใ™ใ€‚

ๆณจๆ„็‚น

ใ“ใฎๆ–ฝ็ญ–ใ‚’ๅฎŸๆ–ฝใ™ใ‚‹ๅ‰ใซใ€ไปฅไธ‹ใฎ็‚นใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚

  • CraftใฎGrowthใƒ—ใƒฉใƒณไปฅไธŠใ‚’ๅˆฉ็”จใ—ใฆใ„ใ‚‹ใ“ใจใ‚’ๅ‰ๆใจใ—ใฆใ„ใพใ™ใ€‚

  • ๅฎŸ้š›ใซใใ˜ๅผ•ใๆ–ฝ็ญ–ใ‚’่กŒใ†้š›ใซใฏใ€ใใ˜ๅผ•ใAPIใฎไธๆญฃๅˆฉ็”จใ‚’้˜ฒใใŸใ‚ใซ่ช่จผใ‚ทใ‚นใƒ†ใƒ ใจใฎ้€ฃๆบ็ญ‰ใ‚‚ๆคœ่จŽใ—ใฆใใ ใ•ใ„ใ€‚

  • ๆœฌ่จ˜ไบ‹ใงใฏใ€ๅŒไธ€ใƒฆใƒผใ‚ถใƒผใŒใใ˜ๅผ•ใใซๅ‚ๅŠ ใงใใ‚‹ใฎใฏ่จญๅฎšใ—ใŸๆ™‚้–“้–“้š”ใซ1ๅ›žใซใ™ใ‚‹ใ“ใจใงใ€็ฐกๆ˜“็š„ใซไธๆญฃๅˆฉ็”จใ‚’้˜ฒใใ‚ˆใ†ใช่จญๅฎšใจใ—ใฆใ„ใพใ™ใ€‚

  • ๅฝ“้ธใƒฆใƒผใ‚ถใƒผใฎไธ€่ฆงใ‚’ๆŠฝๅ‡บใ—ใŸใ„ๅ ดๅˆใ€Datahubใฎๅฅ‘็ด„ใŒๅฟ…่ฆใซใชใ‚Šใพใ™

  • ๅฝ“้ธใƒฆใƒผใ‚ถใƒผใฎ็ฎก็†ใ‚’ใ€/track/event/write API็ตŒ็”ฑใง็™บ็”Ÿใ•ใ›ใŸKARTEใฎใ‚คใƒ™ใƒณใƒˆใงๅฎŸๆ–ฝใ—ใพใ™ใ€‚APIใฎๅˆ†้–“ใƒชใ‚ฏใ‚จใ‚นใƒˆๅˆถ้™ใ‚’่ถ…ใˆใ‚‹ๅ ดๅˆใฏใ€ไธŠ้™ใ‚’ๅผ•ใไธŠใ’ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™

  • https://developers.karte.io/reference/api-v2-limitation

  • ๅฎŸ้š›ใซใ“ใฎใ‚ˆใ†ใชๆ–ฝ็ญ–ใ‚’้‹็”จใ™ใ‚‹ๅ ดๅˆใซใฏใ€ๆ™ฏๅ“่กจ็คบๆณ•ใฎ่ฆณ็‚นใ‹ใ‚‰ใ€ๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐใŒ0ใซใชใฃใŸๆ™‚็‚นใง้€Ÿใ‚„ใ‹ใซใ‚ญใƒฃใƒณใƒšใƒผใƒณใ‚’็ต‚ไบ†ใ—ใฆใใ ใ•ใ„ใ€‚

่จญๅฎšๆ‰‹้ †

่จญๅฎšใฎๆ‰‹้ †ใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚

  1. API v2 ใ‚ขใƒ—ใƒชใ‚’ไฝœๆˆใ™ใ‚‹
  2. API v2 ใ‚ขใƒ—ใƒชใฎ ใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’ Craft Secret Manager ใซ็™ป้Œฒใ™ใ‚‹
  3. Craft Functionsใฎใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใ‚’ไฝœๆˆใ™ใ‚‹
  4. Craft Functionsใฎใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใ‚’ไฝœๆˆใ™ใ‚‹
  5. ใ‚ปใ‚ฐใƒกใƒณใƒˆใ‚’ไฝœๆˆใ™ใ‚‹
  6. ๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใ‚’ไฝœๆˆใ™ใ‚‹ ้ †็•ชใซ่ฆ‹ใฆใฟใพใ—ใ‚‡ใ†ใ€‚

1. API v2 ใ‚ขใƒ—ใƒชใ‚’ไฝœๆˆใ™ใ‚‹

KARTEใฎAPIใ‚’ๅˆฉ็”จใ™ใ‚‹ใŸใ‚ใซใ€API v2ใ‚ขใƒ—ใƒชใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

  • ใ‚นใƒˆใ‚ข > API v2่จญๅฎš ใ‹ใ‚‰ใ‚ขใƒ—ใƒชใ‚’ๆ–ฐ่ฆไฝœๆˆ
  • ใ‚ขใƒ—ใƒชใ‚ฟใ‚คใƒ— ใ‚’ token ใซ่จญๅฎš

  • ๅฟ…่ฆใชscopeใ‚’่ฟฝๅŠ 

  • track.event.write

  • ใ‚ขใƒ—ใƒชใ‚’ไฟๅญ˜ใ—ใ€ไธ€ๅบฆใ ใ‘่กจ็คบใ•ใ‚Œใ‚‹ใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’ใƒกใƒขใ—ใฆใŠใ

2. API v2 ใ‚ขใƒ—ใƒชใฎ ใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’ Craft Secret Manager ใซ็™ป้Œฒใ™ใ‚‹

API v2 ใ‚ขใƒ—ใƒชใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’Craft Functionsใ‹ใ‚‰ๅฎ‰ๅ…จใซๅˆฉ็”จใ™ใ‚‹ใŸใ‚ใซใ€Craft Secret Manager ใซ็™ป้Œฒใ—ใพใ™ใ€‚

  • Craft > ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆ ใ‹ใ‚‰ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆใ‚’ๆ–ฐ่ฆไฝœๆˆ
  • ๅๅ‰ ใซใ€ใ‚ใ‹ใ‚Šใ‚„ใ™ใ„ๅๅ‰ใ‚’ๅ…ฅๅŠ›
  • ใƒกใƒขใ—ใฆใŠใ„ใŸAPI v2 ใ‚ขใƒ—ใƒชใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’ ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆใฎๅ€ค ใซๅ…ฅๅŠ›ใ—ใ€ไฝœๆˆ
  • ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆๅใ‚’ใƒกใƒขใ—ใฆใŠใ

3. Craft Functionsใฎใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใ‚’ไฝœๆˆใ™ใ‚‹

Craft Functionsใฎใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใ‚’ไฝœๆˆใ—ใพใ™ใ€‚ไฝœๆˆๆ‰‹้ †ใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚

  • Craft > ใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณ > ๆ–ฐ่ฆไฝœๆˆ > ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใ‹ใ‚‰ไฝœๆˆ ใ‚’้ธๆŠž

  • ใ€Œ Craft FunctionsใจCraft Counterใงๅฝ“ใŸใ‚ŠไธŠ้™ๆ•ฐใฎใ‚ใ‚‹ใใ˜ๅผ•ใๆ–ฝ็ญ–ใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ ใ€ใจใ„ใ†ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใ‚’ๆคœ็ดขใ—ๅ–ๅพ—ใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏ

  • ๅๆ˜  ใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏ

  • ๅค‰ๆ•ฐ ใ‚ฟใƒ–ใงๆฌกใฎๅค‰ๆ•ฐใฎๅ€คใ‚’่จญๅฎšใ™ใ‚‹

  • PRIZES

  • ๅฝ“ใŸใ‚Š็จฎๅˆฅใฎๅ็งฐใ‚’่จญๅฎšใ—ใพใ™ใ€‚ใ‚ซใƒณใƒžๅŒบๅˆ‡ใ‚Šใง่ค‡ๆ•ฐๆŒ‡ๅฎšๅฏ่ƒฝใงใ™ใ€‚

  • ไพ‹: 1็ญ‰,2็ญ‰,3็ญ‰

  • LIMITS

  • ๅฝ“ใŸใ‚ŠใฎไธŠ้™ๆ•ฐใ‚’่จญๅฎšใ—ใพใ™ใ€‚ใ‚ซใƒณใƒžๅŒบๅˆ‡ใ‚Šใง่ค‡ๆ•ฐๆŒ‡ๅฎšๅฏ่ƒฝใงใ€PRIZESใจๅŒใ˜้ †็•ชใงๅฏพๅฟœใ™ใ‚‹ไธŠ้™ๆ•ฐใ‚’่จญๅฎšใ—ใพใ™ใ€‚

  • ไพ‹: 10,50,100

  • LOSE_PROBABILITY

  • ใƒใ‚บใƒฌใฎ็ขบ็Ž‡ใ‚’่จญๅฎšใ—ใพใ™ใ€‚0ใ‹ใ‚‰1ใฎ้–“ใฎๅฐๆ•ฐๅ€คใงๆŒ‡ๅฎšใ—ใพใ™ใ€‚

  • ไพ‹: 0.5

  • USER_PARTICIPATION_INTERVAL_MINUTES

  • ๅŒไธ€ใƒฆใƒผใ‚ถใƒผใŒใใ˜ๅผ•ใใซ้€ฃ็ถšใ—ใฆๅ‚ๅŠ ใงใใชใ„ๆ™‚้–“ใ‚’ๅˆ†ๅ˜ไฝใง่จญๅฎšใ—ใพใ™ใ€‚0ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจๅˆถ้™ใชใ—ใซใชใ‚Šใพใ™ใ€‚

  • KARTE_APP_TOKEN_SECRET

  • ๆ‰‹้ †2ใงใƒกใƒขใ—ใŸKARTE API v2ใ‚ขใƒ—ใƒชใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใฎใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆๅใ‚’่จญๅฎšใ—ใพใ™ใ€‚

  • ใใฎไป–ใฎๅค‰ๆ•ฐใฏใ€ใฒใจใพใšใƒ‡ใƒ•ใ‚ฉใƒซใƒˆๅ€คใฎใพใพใงๅ•้กŒใ‚ใ‚Šใพใ›ใ‚“

  • ไฟๅญ˜ ใ™ใ‚‹

  • ใƒ‡ใƒ—ใƒญใ‚คๅฎŒไบ†ๅพŒใ€่จญๅฎš > ใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใฎๆœ‰ๅŠนๅŒ– ใซใƒใ‚งใƒƒใ‚ฏใ‚’ไป˜ใ‘ใ‚‹

ๅฝ“ใŸใ‚Šๅˆคๅฎšใฎใƒญใ‚ธใƒƒใ‚ฏใซใคใ„ใฆ

ใ“ใฎใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใซใŠใ‘ใ‚‹ๅฝ“ใŸใ‚Š/ใฏใšใ‚Œใ‚’ๅˆคๅฎšใ™ใ‚‹ใƒญใ‚ธใƒƒใ‚ฏใซใคใ„ใฆ่ชฌๆ˜Žใ—ใพใ™ใ€‚ๅ„่ณžๅ“ใฎๅฝ“ใŸใ‚Š็ขบ็Ž‡ใฏใ€ๆฌกใฎใ‚ˆใ†ใซ่จˆ็ฎ—ใ•ใ‚Œใพใ™๏ผš

  • ใใฎ่ณžๅ“ใฎๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐ / ๅ…จไฝ“ใฎๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐ * (1 - ใฏใšใ‚Œ็ขบ็Ž‡)

ๆฌกใฎใ‚ˆใ†ใช็Šถๆณใ‚’ๅ…ทไฝ“ไพ‹ใจใ—ใฆๆƒณๅฎšใ—ใพใ™๏ผš

  • PRIZES: 1็ญ‰,2็ญ‰,3็ญ‰
  • LIMITS: 10,50,100
  • LOSE_PROBABILITY: 0.5

ๅˆๆœŸ็Šถๆ…‹ใงใฎ็ขบ็Ž‡ใฏใ€ๆฌกใฎ้€šใ‚Šใงใ™๏ผš

  • ใฏใšใ‚Œใฎ็ขบ็Ž‡: 0.5

  • ๅฝ“ใŸใ‚Šใฎ็ขบ็Ž‡: 0.5

  • ๅ†…ใ€1็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 10 / (10 + 50 + 100) * 0.5 โ‰’ 0.031 (็ด„3.1%)

  • ๅ†…ใ€2็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 50 / (10 + 50 + 100) * 0.5 โ‰’ 0.156 (็ด„15.6%)

  • ๅ†…ใ€3็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 100 / (10 + 50 + 100) * 0.5 โ‰’ 0.313 (็ด„31.3%)

ใŸใจใˆใฐ1็ญ‰ใŒๆฎ‹ใ‚Š6ๅ€‹ใ€2็ญ‰ใŒๆฎ‹ใ‚Š15ๅ€‹ใ€3็ญ‰ใŒๆฎ‹ใ‚Š40ๅ€‹ใซใชใฃใŸๅ ดๅˆใฎ็ขบ็Ž‡ใฏๆฌกใฎ้€šใ‚Šใงใ™๏ผš

  • ใฏใšใ‚Œใฎ็ขบ็Ž‡: 0.5

  • ๅฝ“ใŸใ‚Šใฎ็ขบ็Ž‡: 0.5

  • ๅ†…ใ€1็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 6 / (6 + 15 + 40) * 0.5 โ‰’ 0.049 (็ด„4.9%)

  • ๅ†…ใ€2็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 15 / (6 + 15 + 40) * 0.5 โ‰’ 0.123 (็ด„12.3%)

  • ๅ†…ใ€3็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 40 / (6 + 15 + 40) * 0.5 โ‰’ 0.328 (็ด„32.8%)

ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ๅ‹•็š„ใซๅ„ๅฝ“ใŸใ‚Šใฎ็ขบ็Ž‡ใŒๅค‰ๅŒ–ใ—ใพใ™ใ€‚ ๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐใŒ็„กใใชใฃใŸ่ณžๅ“ใฏ่‡ชๅ‹•ใงๅฝ“ใŸใ‚Š็ขบ็Ž‡ใŒ0ใซใชใ‚Šใ€ใ‚‚ใ†ๅฝ“ใŸใ‚‰ใชใใชใ‚Šใพใ™ใ€‚

ใชใŠใ€ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใฎใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใฏGitHubใงๅ…ฌ้–‹ใ—ใฆใ„ใพใ™ใ€‚

craft-codes/craft-functions/lottery-with-limits-of-wins at main ยท plaidev/craft-codes

4. Craft Functionsใฎใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใ‚’ไฝœๆˆใ™ใ‚‹

ไฝœๆˆใ—ใŸใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใ‚’ๅค–้ƒจใ‹ใ‚‰ๅฎŸ่กŒใงใใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹ใŸใ‚ใฎใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

  • ไฝœๆˆใ—ใŸใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใฎ็ทจ้›†็”ป้ขใ‹ใ‚‰ ่จญๅฎš > ใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆ > ไฝœๆˆ ใ‚’ใ‚ฏใƒชใƒƒใ‚ฏ
  • ่กจ็คบใ•ใ‚ŒใŸใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆURLใ‚’ใƒกใƒขใ—ใฆใŠใ

5. ๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใ‚’ไฝœๆˆใ™ใ‚‹

ใใ˜ๅผ•ใๆฉŸ่ƒฝใ‚’ใƒฆใƒผใ‚ถใƒผใซๆไพ›ใ™ใ‚‹ใŸใ‚ใซใ€KARTEใฎๆŽฅๅฎขใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅˆฉ็”จใ—ใฆใ€ใใ˜ๅผ•ใ็”ป้ขใ‚’ใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ๅฝขๅผใงไฝœๆˆใ—ใพใ™ใ€‚ ใ“ใฎใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ใฏใ€่จญๅฎšใ—ใŸๆ™‚้–“ๅ†…ใซใใ˜ๅผ•ใใซๅ‚ๅŠ ใ—ใฆใ„ใชใ„ใƒฆใƒผใ‚ถใƒผใซๅฏพใ—ใฆ่กจ็คบใ•ใ‚Œใพใ™ใ€‚

ใใ˜ๅผ•ใใ‚ขใ‚ฏใ‚ทใƒงใƒณใฎJavaScriptๅฎŸ่ฃ…

ไปฅไธ‹ใฎJavaScriptใ‚ณใƒผใƒ‰ใฏใ€ใƒฆใƒผใ‚ถใƒผใŒใ€Œใใ˜ใ‚’ๅผ•ใใ€ใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ—ใŸ้š›ใซๅฎŸ่กŒใ•ใ‚Œใพใ™ใ€‚ ใ“ใฎใ‚ณใƒผใƒ‰ใฏใ€ใใ˜ๅผ•ใใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’้€ไฟกใ—ใ€ๅฝ“ใŸใ‚Š/ใƒใ‚บใƒฌใฎ็ตๆžœใซๅฟœใ˜ใฆstateใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚ CRAFT_ENDPOINT_URLใฏๆ‰‹้ †4ใงใƒกใƒขใ—ใŸใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆURLใซ็ฝฎใๆ›ใˆใฆใใ ใ•ใ„ใ€‚ LOTTERY_KEYใฏใใ˜ๅผ•ใๆ–ฝ็ญ–ๅŒๅฃซใ‚’ๅŒบๅˆฅใ™ใ‚‹ใŸใ‚ใฎ่ญ˜ๅˆฅๅญใงใ™ใ€‚ๅฝ“ใŸใ‚Šๆ™‚ใฎใ‚คใƒ™ใƒณใƒˆ็ญ‰ใซๅซใพใ‚Œใพใ™ใ€‚

var CRAFT_ENDPOINT_URL = “https://xxx.cev2.karte.io/functions/yyyyy";var LOTTERY_KEY = “lottery_key”;widget.setVal(“isLoading”, false);widget.method(“onClick”, function () { // Display loading indicator until the request is complete widget.setVal(“isLoading”, true); // Send the lottery request fetchData(function (item, error) { if (error) { console.error(error); widget.setState(3); // State for error: not winning } else { widget.setVal(“result”, item.result); // Change the state based on whether a prize was won if (item.result && item.result !== “No prize won”) { widget.setState(2); // State for winning } else { widget.setState(3); // State for not winning } } widget.setVal(“isLoading”, false); });});function fetchData(cb) { var payload = { userId: “#{user_id}”, lotteryKey: LOTTERY_KEY, }; fetch(CRAFT_ENDPOINT_URL, { method: “POST”, headers: { “Content-Type”: “application/json”, }, body: JSON.stringify(payload), }) .then(function (response) { return response.json(); }) .then(function (item) { cb(item); }) .catch(function (err) { cb(null, err); });}widget.show();

ใใ˜ๅผ•ใใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ใฎๅฎŸ่ฃ…

ใใ˜ๅผ•ใใฎ็ตๆžœใซๅฟœใ˜ใฆ่กจ็คบใ•ใ‚Œใ‚‹ๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใฏไปฅไธ‹ใฎ้€šใ‚Šใงใ™ใ€‚ ใƒฆใƒผใ‚ถใƒผใŒใ€Œใใ˜ใ‚’ๅผ•ใใ€ใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ™ใ‚‹ใจใ€JavaScriptใŒCraft Functionsใธใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’้€ไฟกใ—ใ€็ตๆžœใซๅฟœใ˜ใฆๅฝ“ใŸใ‚ŠใพใŸใฏใƒใ‚บใƒฌใฎ็”ป้ขใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚

<div class=“karte-temp-whole”> <div class=“karte-temp-state1” krt-if=“state==1”> <i class=“karte-temp-close karte-close karte-temp-hover” krt-if=”#{close.use}"></i> <div class=“karte-temp-card”> <div class=“karte-temp-mainvisual”><img src="#{mainvisual}" alt="#{mainvisual_alt}" /></div> <div class=“karte-temp-wrap”> <div class=“karte-temp-title”>#{title}</div> <div class=“karte-temp-description”>#{description}</div> <a class=“karte-temp-btn karte-temp-hover” krt-on:click=“onClick”> <span krt-if="!isLoading">#{btn}</span> <div krt-else class=“drawing”> <i class=“loader” aria-hidden=“true”></i> #{loading_btn} </span> </a> </div> </div> </div> <div class=“karte-temp-state1” krt-if=“state==2”> <i class=“karte-temp-close karte-close karte-temp-hover” krt-if="#{close.use}"></i> <div class=“karte-temp-card”> <div class=“karte-temp-mainvisual”><img src="#{winvisual}" alt="#{winvisual_alt}" /></div> <div class=“karte-temp-wrap”> <div class=“karte-temp-title”>{{result}}#{win_title}</div> </div> </div> </div> <div class=“karte-temp-state1” krt-if=“state==3”> <i class=“karte-temp-close karte-close karte-temp-hover” krt-if="#{close.use}"></i> <div class=“karte-temp-card”> <div class=“karte-temp-mainvisual”><img src="#{losevisual}" alt="#{losevisual_alt}" /></div> <div class=“karte-temp-wrap”> <div class=“karte-temp-title”>#{lose_title}</div> </div> </div> </div></div>ๅฎŸ้š›ใซใฏๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใ‚’้…ไฟกใ—ใŸใ„็Šถๆณใซๅˆใ‚ใ›ใŸ้…ไฟก่จญๅฎšใ‚’ๅฎŸๆ–ฝใ—ใฆใใ ใ•ใ„ใ€‚

ๅฎŸ้š›ใซๅ‹•ใ‹ใ—ใฆใฟใ‚‹

่จญๅฎšใŒๅฎŒไบ†ใ—ใŸใ‚‰ใ€ๅฎŸ้š›ใซๅ‹•ไฝœใ‚’็ขบ่ชใ—ใฆใฟใพใ—ใ‚‡ใ†ใ€‚

ใพใšใฏใ€ใใ˜ใ‚’ๅผ•ใใƒœใ‚ฟใƒณใ‚’ๆŠผไธ‹ใ™ใ‚‹ใจใ“ใ‚ใ‹ใ‚‰ๅง‹ใ‚ใพใ™ใ€‚ใใ˜ๅผ•ใใŒๅง‹ใพใ‚Šใ€็ตๆžœใŒ่กจ็คบใ•ใ‚Œใ‚‹ใƒ—ใƒญใ‚ปใ‚นใ‚’ไปฅไธ‹ใฎ็”ปๅƒใง็ขบ่ชใงใใพใ™ใ€‚

lucky_draws_won3prize

ๆฌกใซใ€่จญๅฎšใ‚’ๅค‰ๆ›ดใ—ใฆใ€ๅฝ“ใŸใ‚ŠใฎไธŠ้™ๆ•ฐใ‚’0ใซใ—ใฆใฟใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ใ™ในใฆใฎใƒฆใƒผใ‚ถใƒผใŒใƒใ‚บใƒฌใซใชใ‚‹ใฏใšใงใ™ใ€‚

lucky_draws_000

ไธŠ่จ˜ใฎ่จญๅฎšๅค‰ๆ›ดๅพŒใ€ๅ†ๅบฆใใ˜ใ‚’ๅผ•ใใƒœใ‚ฟใƒณใ‚’ๆŠผไธ‹ใ™ใ‚‹ใจใ€ไปฅไธ‹ใฎใ‚ˆใ†ใซใƒใ‚บใƒฌใŒๅ‡บใ‚‹ใ“ใจใŒ็ขบ่ชใงใใพใ™ใ€‚

lucky_draws_lose

ใใ˜ๅผ•ใๆฉŸ่ƒฝใฎๅ‹•ไฝœ็ขบ่ชใŒ่กŒใˆใฆใ€่จญๅฎšใซๅฟœใ˜ใŸ็ตๆžœใŒๅพ—ใ‚‰ใ‚Œใ‚‹ใ“ใจใŒใ‚ใ‹ใ‚Šใพใ—ใŸใ€‚

ใใ˜ๅผ•ใใ‚คใƒ™ใƒณใƒˆใฎ้€ไฟกใซใคใ„ใฆ

ใใ˜ๅผ•ใใ‚’ใ™ใ‚‹ใจใ€ๅฝ“ใŸใ‚Šใ‚„ใƒใ‚บใƒฌใฎ็ตๆžœใซๅฟœใ˜ใฆใ‚คใƒ™ใƒณใƒˆใŒFunctionsใ‹ใ‚‰้€ไฟกใ•ใ‚Œใพใ™ใ€‚

  • ๅฝ“ใŸใ‚Šใฎใ‚คใƒ™ใƒณใƒˆ: lucky_draws_event_win
  • ใƒใ‚บใƒฌใฎใ‚คใƒ™ใƒณใƒˆ: lucky_draws_event_lose

ไพ‹ใˆใฐใ€้‹็”จไธŠใงๅฝ“ใŸใ‚Šใƒฆใƒผใ‚ถใƒผใฎไธ€่ฆงใ‚’ๆŠฝๅ‡บใ—ใŸใ„ๅ ดๅˆใชใฉใ€ๅฏพ่ฑก่€…ใ‚’Datahubใ‚ฏใ‚จใƒชใงๆŠฝๅ‡บใ™ใ‚‹ใ“ใจใŒๅฏ่ƒฝใงใ™ใ€‚

ใŠใ‚ใ‚Šใซ

ๆœฌ่จ˜ไบ‹ใงใฏใ€Craft FunctionsใจCraft Counterใ‚’ไฝฟใฃใฆใ€ๅฝ“ใŸใ‚ŠไธŠ้™ๆ•ฐใ‚’่€ƒๆ…ฎใ—ใŸใใ˜ๅผ•ใๆ–ฝ็ญ–ใฎไฝœใ‚Šๆ–นใ‚’ใ”็ดนไป‹ใ—ใพใ—ใŸใ€‚

ไปŠๅ›žใฎใ‚ฝใƒชใƒฅใƒผใ‚ทใƒงใƒณใงใฏๅฝ“ใŸใ‚Š็ขบ็Ž‡ใŒๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐใซๅฟœใ˜ใฆๅค‰ๅ‹•ใ™ใ‚‹ใŸใ‚ใ€ใ€Œไบˆๅฎšใ—ใฆใ„ใŸๆ•ฐใ‚ˆใ‚Šๅฝ“ใŸใ‚Šๆ•ฐใ‚’ๅ‡บใ—ใฆใ—ใพใฃใŸใ€ใจใ„ใ†ไบ‹ๆ…‹ใ‚’ใ€้‹็”จใฎๆ‰‹้–“ใ‚’ใ‹ใ‘ใšใซ่‡ชๅ‹•ใง้ฟใ‘ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

ใƒ—ใƒฌใ‚คใƒ‰ใงใฏใ€ไธ–ใฎไธญใซใ‚คใƒณใƒ‘ใ‚ฏใƒˆใ‚’ไธŽใˆใ‚‹ๆ–ฐใ—ใ„ใ‚ฝใƒชใƒฅใƒผใ‚ทใƒงใƒณใ‚’ไธ€็ท’ใซใคใใ‚‹ไปฒ้–“ใ‚’ๅ‹Ÿ้›†ใ—ใฆใ„ใพใ™๏ผใœใฒๆฐ—่ปฝใซใŠๅ•ใ„ๅˆใ‚ใ›ใใ ใ•ใ„ใ€‚

โ†“ ใƒ‘ใƒผใƒˆใƒŠใƒผไผๆฅญใซใชใ‚ŠใŸใ„

  • CustomerData-Driven Solution ใ‚’ไธ€็ท’ใซๅ‰ตใ‚Šใพใ›ใ‚“ใ‹๏ผŸ | PLAID Ecosystem

โ†“ PLAIDใงๅƒใใŸใ„

  • Customer Engineer | ๅ‹Ÿ้›†ใƒใ‚ธใ‚ทใƒงใƒณ | ๆ ชๅผไผš็คพใƒ—ใƒฌใ‚คใƒ‰
  • Product Engineer | ๅ‹Ÿ้›†ใƒใ‚ธใ‚ทใƒงใƒณ | ๆ ชๅผไผš็คพใƒ—ใƒฌใ‚คใƒ‰

ๆœฌ่จ˜ไบ‹ใง็ดนไป‹ใ™ใ‚‹ใใ˜ๅผ•ใๆ–ฝ็ญ–ใฎๆœ€็ต‚็š„ใชใ‚ขใ‚ฆใƒˆใƒ—ใƒƒใƒˆใฏใ€ไปฅไธ‹ใฎใ‚คใƒกใƒผใ‚ธๅ›ณใฎ้€šใ‚Šใงใ™ใ€‚

ใใ˜ๅผ•ใๆ–ฝ็ญ–ใฎใ‚ขใ‚ฆใƒˆใƒ—ใƒƒใƒˆ

ใ“ใฎใ‚คใƒกใƒผใ‚ธใฏใ€ใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰่ฆ‹ใˆใ‚‹ใใ˜ๅผ•ใใฎ็ตๆžœ็”ป้ขใ‚’่กจใ—ใฆใŠใ‚Šใ€ๅฝ“ใŸใ‚Šใ‚„ใƒใ‚บใƒฌใŒ็›ดๆ„Ÿ็š„ใซ็†่งฃใงใใ‚‹ๆŽฅๅฎขใ‚ขใ‚ฏใ‚ทใƒงใƒณใซใชใฃใฆใ„ใพใ™ใ€‚

ใ•ใ‚‰ใซใ€ใ‚ทใ‚นใƒ†ใƒ ใฎๅ…จไฝ“ๆง‹ๆˆใ‚’็คบใ—ใŸๅ›ณใ‚’ไปฅไธ‹ใซ็คบใ—ใพใ™ใ€‚

ใ‚ทใ‚นใƒ†ใƒ ๆง‹ๆˆ

ใ“ใฎๅ›ณใฏใ€ใƒฆใƒผใ‚ถใƒผใฎใ‚ขใ‚ฏใ‚ทใƒงใƒณใซๅŸบใฅใ„ใฆCraft FunctionsใŒใฉใฎใ‚ˆใ†ใซๅ‹•ไฝœใ—ใ€ๅฝ“ใŸใ‚ŠใŒๅ‡บใŸๅ›žๆ•ฐใ‚’็ฎก็†ใ—ใคใคใ€็ตๆžœใจใ—ใฆๅฝ“ใŸใ‚ŠใพใŸใฏใƒใ‚บใƒฌใ‚’่ฟ”ใ™ใฎใ‹ใ‚’็คบใ—ใฆใ„ใพใ™ใ€‚

ๆณจๆ„็‚น

ใ“ใฎๆ–ฝ็ญ–ใ‚’ๅฎŸๆ–ฝใ™ใ‚‹ๅ‰ใซใ€ไปฅไธ‹ใฎ็‚นใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚

  • CraftใฎGrowthใƒ—ใƒฉใƒณไปฅไธŠใ‚’ๅˆฉ็”จใ—ใฆใ„ใ‚‹ใ“ใจใ‚’ๅ‰ๆใจใ—ใฆใ„ใพใ™ใ€‚

  • ๅฎŸ้š›ใซใใ˜ๅผ•ใๆ–ฝ็ญ–ใ‚’่กŒใ†้š›ใซใฏใ€ใใ˜ๅผ•ใAPIใฎไธๆญฃๅˆฉ็”จใ‚’้˜ฒใใŸใ‚ใซ่ช่จผใ‚ทใ‚นใƒ†ใƒ ใจใฎ้€ฃๆบ็ญ‰ใ‚‚ๆคœ่จŽใ—ใฆใใ ใ•ใ„ใ€‚

  • ๆœฌ่จ˜ไบ‹ใงใฏใ€ๅŒไธ€ใƒฆใƒผใ‚ถใƒผใŒใใ˜ๅผ•ใใซๅ‚ๅŠ ใงใใ‚‹ใฎใฏ่จญๅฎšใ—ใŸๆ™‚้–“้–“้š”ใซ1ๅ›žใซใ™ใ‚‹ใ“ใจใงใ€็ฐกๆ˜“็š„ใซไธๆญฃๅˆฉ็”จใ‚’้˜ฒใใ‚ˆใ†ใช่จญๅฎšใจใ—ใฆใ„ใพใ™ใ€‚

  • ๅฝ“้ธใƒฆใƒผใ‚ถใƒผใฎไธ€่ฆงใ‚’ๆŠฝๅ‡บใ—ใŸใ„ๅ ดๅˆใ€Datahubใฎๅฅ‘็ด„ใŒๅฟ…่ฆใซใชใ‚Šใพใ™

  • ๅฝ“้ธใƒฆใƒผใ‚ถใƒผใฎ็ฎก็†ใ‚’ใ€/track/event/write API็ตŒ็”ฑใง็™บ็”Ÿใ•ใ›ใŸKARTEใฎใ‚คใƒ™ใƒณใƒˆใงๅฎŸๆ–ฝใ—ใพใ™ใ€‚APIใฎๅˆ†้–“ใƒชใ‚ฏใ‚จใ‚นใƒˆๅˆถ้™ใ‚’่ถ…ใˆใ‚‹ๅ ดๅˆใฏใ€ไธŠ้™ใ‚’ๅผ•ใไธŠใ’ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™

  • https://developers.karte.io/reference/api-v2-limitation

  • ๅฎŸ้š›ใซใ“ใฎใ‚ˆใ†ใชๆ–ฝ็ญ–ใ‚’้‹็”จใ™ใ‚‹ๅ ดๅˆใซใฏใ€ๆ™ฏๅ“่กจ็คบๆณ•ใฎ่ฆณ็‚นใ‹ใ‚‰ใ€ๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐใŒ0ใซใชใฃใŸๆ™‚็‚นใง้€Ÿใ‚„ใ‹ใซใ‚ญใƒฃใƒณใƒšใƒผใƒณใ‚’็ต‚ไบ†ใ—ใฆใใ ใ•ใ„ใ€‚

่จญๅฎšๆ‰‹้ †

่จญๅฎšใฎๆ‰‹้ †ใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚

  1. API v2 ใ‚ขใƒ—ใƒชใ‚’ไฝœๆˆใ™ใ‚‹
  2. API v2 ใ‚ขใƒ—ใƒชใฎ ใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’ Craft Secret Manager ใซ็™ป้Œฒใ™ใ‚‹
  3. Craft Functionsใฎใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใ‚’ไฝœๆˆใ™ใ‚‹
  4. Craft Functionsใฎใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใ‚’ไฝœๆˆใ™ใ‚‹
  5. ใ‚ปใ‚ฐใƒกใƒณใƒˆใ‚’ไฝœๆˆใ™ใ‚‹
  6. ๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใ‚’ไฝœๆˆใ™ใ‚‹ ้ †็•ชใซ่ฆ‹ใฆใฟใพใ—ใ‚‡ใ†ใ€‚

1. API v2 ใ‚ขใƒ—ใƒชใ‚’ไฝœๆˆใ™ใ‚‹

KARTEใฎAPIใ‚’ๅˆฉ็”จใ™ใ‚‹ใŸใ‚ใซใ€API v2ใ‚ขใƒ—ใƒชใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

  • ใ‚นใƒˆใ‚ข > API v2่จญๅฎš ใ‹ใ‚‰ใ‚ขใƒ—ใƒชใ‚’ๆ–ฐ่ฆไฝœๆˆ
  • ใ‚ขใƒ—ใƒชใ‚ฟใ‚คใƒ— ใ‚’ token ใซ่จญๅฎš

  • ๅฟ…่ฆใชscopeใ‚’่ฟฝๅŠ 

  • track.event.write

  • ใ‚ขใƒ—ใƒชใ‚’ไฟๅญ˜ใ—ใ€ไธ€ๅบฆใ ใ‘่กจ็คบใ•ใ‚Œใ‚‹ใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’ใƒกใƒขใ—ใฆใŠใ

2. API v2 ใ‚ขใƒ—ใƒชใฎ ใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’ Craft Secret Manager ใซ็™ป้Œฒใ™ใ‚‹

API v2 ใ‚ขใƒ—ใƒชใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’Craft Functionsใ‹ใ‚‰ๅฎ‰ๅ…จใซๅˆฉ็”จใ™ใ‚‹ใŸใ‚ใซใ€Craft Secret Manager ใซ็™ป้Œฒใ—ใพใ™ใ€‚

  • Craft > ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆ ใ‹ใ‚‰ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆใ‚’ๆ–ฐ่ฆไฝœๆˆ
  • ๅๅ‰ ใซใ€ใ‚ใ‹ใ‚Šใ‚„ใ™ใ„ๅๅ‰ใ‚’ๅ…ฅๅŠ›
  • ใƒกใƒขใ—ใฆใŠใ„ใŸAPI v2 ใ‚ขใƒ—ใƒชใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’ ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆใฎๅ€ค ใซๅ…ฅๅŠ›ใ—ใ€ไฝœๆˆ
  • ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆๅใ‚’ใƒกใƒขใ—ใฆใŠใ

3. Craft Functionsใฎใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใ‚’ไฝœๆˆใ™ใ‚‹

Craft Functionsใฎใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใ‚’ไฝœๆˆใ—ใพใ™ใ€‚ไฝœๆˆๆ‰‹้ †ใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚

  • Craft > ใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณ > ๆ–ฐ่ฆไฝœๆˆ > ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใ‹ใ‚‰ไฝœๆˆ ใ‚’้ธๆŠž

  • ใ€Œ Craft FunctionsใจCraft Counterใงๅฝ“ใŸใ‚ŠไธŠ้™ๆ•ฐใฎใ‚ใ‚‹ใใ˜ๅผ•ใๆ–ฝ็ญ–ใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ ใ€ใจใ„ใ†ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใ‚’ๆคœ็ดขใ—ๅ–ๅพ—ใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏ

  • ๅๆ˜  ใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏ

  • ๅค‰ๆ•ฐ ใ‚ฟใƒ–ใงๆฌกใฎๅค‰ๆ•ฐใฎๅ€คใ‚’่จญๅฎšใ™ใ‚‹

  • PRIZES

  • ๅฝ“ใŸใ‚Š็จฎๅˆฅใฎๅ็งฐใ‚’่จญๅฎšใ—ใพใ™ใ€‚ใ‚ซใƒณใƒžๅŒบๅˆ‡ใ‚Šใง่ค‡ๆ•ฐๆŒ‡ๅฎšๅฏ่ƒฝใงใ™ใ€‚

  • ไพ‹: 1็ญ‰,2็ญ‰,3็ญ‰

  • LIMITS

  • ๅฝ“ใŸใ‚ŠใฎไธŠ้™ๆ•ฐใ‚’่จญๅฎšใ—ใพใ™ใ€‚ใ‚ซใƒณใƒžๅŒบๅˆ‡ใ‚Šใง่ค‡ๆ•ฐๆŒ‡ๅฎšๅฏ่ƒฝใงใ€PRIZESใจๅŒใ˜้ †็•ชใงๅฏพๅฟœใ™ใ‚‹ไธŠ้™ๆ•ฐใ‚’่จญๅฎšใ—ใพใ™ใ€‚

  • ไพ‹: 10,50,100

  • LOSE_PROBABILITY

  • ใƒใ‚บใƒฌใฎ็ขบ็Ž‡ใ‚’่จญๅฎšใ—ใพใ™ใ€‚0ใ‹ใ‚‰1ใฎ้–“ใฎๅฐๆ•ฐๅ€คใงๆŒ‡ๅฎšใ—ใพใ™ใ€‚

  • ไพ‹: 0.5

  • USER_PARTICIPATION_INTERVAL_MINUTES

  • ๅŒไธ€ใƒฆใƒผใ‚ถใƒผใŒใใ˜ๅผ•ใใซ้€ฃ็ถšใ—ใฆๅ‚ๅŠ ใงใใชใ„ๆ™‚้–“ใ‚’ๅˆ†ๅ˜ไฝใง่จญๅฎšใ—ใพใ™ใ€‚0ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจๅˆถ้™ใชใ—ใซใชใ‚Šใพใ™ใ€‚

  • KARTE_APP_TOKEN_SECRET

  • ๆ‰‹้ †2ใงใƒกใƒขใ—ใŸKARTE API v2ใ‚ขใƒ—ใƒชใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใฎใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆๅใ‚’่จญๅฎšใ—ใพใ™ใ€‚

  • ใใฎไป–ใฎๅค‰ๆ•ฐใฏใ€ใฒใจใพใšใƒ‡ใƒ•ใ‚ฉใƒซใƒˆๅ€คใฎใพใพใงๅ•้กŒใ‚ใ‚Šใพใ›ใ‚“

  • ไฟๅญ˜ ใ™ใ‚‹

  • ใƒ‡ใƒ—ใƒญใ‚คๅฎŒไบ†ๅพŒใ€่จญๅฎš > ใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใฎๆœ‰ๅŠนๅŒ– ใซใƒใ‚งใƒƒใ‚ฏใ‚’ไป˜ใ‘ใ‚‹

ๅฝ“ใŸใ‚Šๅˆคๅฎšใฎใƒญใ‚ธใƒƒใ‚ฏใซใคใ„ใฆ

ใ“ใฎใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใซใŠใ‘ใ‚‹ๅฝ“ใŸใ‚Š/ใฏใšใ‚Œใ‚’ๅˆคๅฎšใ™ใ‚‹ใƒญใ‚ธใƒƒใ‚ฏใซใคใ„ใฆ่ชฌๆ˜Žใ—ใพใ™ใ€‚ๅ„่ณžๅ“ใฎๅฝ“ใŸใ‚Š็ขบ็Ž‡ใฏใ€ๆฌกใฎใ‚ˆใ†ใซ่จˆ็ฎ—ใ•ใ‚Œใพใ™๏ผš

  • ใใฎ่ณžๅ“ใฎๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐ / ๅ…จไฝ“ใฎๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐ * (1 - ใฏใšใ‚Œ็ขบ็Ž‡)

ๆฌกใฎใ‚ˆใ†ใช็Šถๆณใ‚’ๅ…ทไฝ“ไพ‹ใจใ—ใฆๆƒณๅฎšใ—ใพใ™๏ผš

  • PRIZES: 1็ญ‰,2็ญ‰,3็ญ‰
  • LIMITS: 10,50,100
  • LOSE_PROBABILITY: 0.5

ๅˆๆœŸ็Šถๆ…‹ใงใฎ็ขบ็Ž‡ใฏใ€ๆฌกใฎ้€šใ‚Šใงใ™๏ผš

  • ใฏใšใ‚Œใฎ็ขบ็Ž‡: 0.5

  • ๅฝ“ใŸใ‚Šใฎ็ขบ็Ž‡: 0.5

  • ๅ†…ใ€1็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 10 / (10 + 50 + 100) * 0.5 โ‰’ 0.031 (็ด„3.1%)

  • ๅ†…ใ€2็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 50 / (10 + 50 + 100) * 0.5 โ‰’ 0.156 (็ด„15.6%)

  • ๅ†…ใ€3็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 100 / (10 + 50 + 100) * 0.5 โ‰’ 0.313 (็ด„31.3%)

ใŸใจใˆใฐ1็ญ‰ใŒๆฎ‹ใ‚Š6ๅ€‹ใ€2็ญ‰ใŒๆฎ‹ใ‚Š15ๅ€‹ใ€3็ญ‰ใŒๆฎ‹ใ‚Š40ๅ€‹ใซใชใฃใŸๅ ดๅˆใฎ็ขบ็Ž‡ใฏๆฌกใฎ้€šใ‚Šใงใ™๏ผš

  • ใฏใšใ‚Œใฎ็ขบ็Ž‡: 0.5

  • ๅฝ“ใŸใ‚Šใฎ็ขบ็Ž‡: 0.5

  • ๅ†…ใ€1็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 6 / (6 + 15 + 40) * 0.5 โ‰’ 0.049 (็ด„4.9%)

  • ๅ†…ใ€2็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 15 / (6 + 15 + 40) * 0.5 โ‰’ 0.123 (็ด„12.3%)

  • ๅ†…ใ€3็ญ‰ใฎๅฝ“้ธ็ขบ็Ž‡: 40 / (6 + 15 + 40) * 0.5 โ‰’ 0.328 (็ด„32.8%)

ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ๅ‹•็š„ใซๅ„ๅฝ“ใŸใ‚Šใฎ็ขบ็Ž‡ใŒๅค‰ๅŒ–ใ—ใพใ™ใ€‚ ๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐใŒ็„กใใชใฃใŸ่ณžๅ“ใฏ่‡ชๅ‹•ใงๅฝ“ใŸใ‚Š็ขบ็Ž‡ใŒ0ใซใชใ‚Šใ€ใ‚‚ใ†ๅฝ“ใŸใ‚‰ใชใใชใ‚Šใพใ™ใ€‚

ใชใŠใ€ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใฎใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใฏGitHubใงๅ…ฌ้–‹ใ—ใฆใ„ใพใ™ใ€‚

craft-codes/craft-functions/lottery-with-limits-of-wins at main ยท plaidev/craft-codes

4. Craft Functionsใฎใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใ‚’ไฝœๆˆใ™ใ‚‹

ไฝœๆˆใ—ใŸใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใ‚’ๅค–้ƒจใ‹ใ‚‰ๅฎŸ่กŒใงใใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹ใŸใ‚ใฎใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

  • ไฝœๆˆใ—ใŸใƒ•ใ‚กใƒณใ‚ฏใ‚ทใƒงใƒณใฎ็ทจ้›†็”ป้ขใ‹ใ‚‰ ่จญๅฎš > ใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆ > ไฝœๆˆ ใ‚’ใ‚ฏใƒชใƒƒใ‚ฏ
  • ่กจ็คบใ•ใ‚ŒใŸใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆURLใ‚’ใƒกใƒขใ—ใฆใŠใ

5. ๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใ‚’ไฝœๆˆใ™ใ‚‹

ใใ˜ๅผ•ใๆฉŸ่ƒฝใ‚’ใƒฆใƒผใ‚ถใƒผใซๆไพ›ใ™ใ‚‹ใŸใ‚ใซใ€KARTEใฎๆŽฅๅฎขใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅˆฉ็”จใ—ใฆใ€ใใ˜ๅผ•ใ็”ป้ขใ‚’ใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ๅฝขๅผใงไฝœๆˆใ—ใพใ™ใ€‚ ใ“ใฎใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ใฏใ€่จญๅฎšใ—ใŸๆ™‚้–“ๅ†…ใซใใ˜ๅผ•ใใซๅ‚ๅŠ ใ—ใฆใ„ใชใ„ใƒฆใƒผใ‚ถใƒผใซๅฏพใ—ใฆ่กจ็คบใ•ใ‚Œใพใ™ใ€‚

ใใ˜ๅผ•ใใ‚ขใ‚ฏใ‚ทใƒงใƒณใฎJavaScriptๅฎŸ่ฃ…

ไปฅไธ‹ใฎJavaScriptใ‚ณใƒผใƒ‰ใฏใ€ใƒฆใƒผใ‚ถใƒผใŒใ€Œใใ˜ใ‚’ๅผ•ใใ€ใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ—ใŸ้š›ใซๅฎŸ่กŒใ•ใ‚Œใพใ™ใ€‚ ใ“ใฎใ‚ณใƒผใƒ‰ใฏใ€ใใ˜ๅผ•ใใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’้€ไฟกใ—ใ€ๅฝ“ใŸใ‚Š/ใƒใ‚บใƒฌใฎ็ตๆžœใซๅฟœใ˜ใฆstateใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚ CRAFT_ENDPOINT_URLใฏๆ‰‹้ †4ใงใƒกใƒขใ—ใŸใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆURLใซ็ฝฎใๆ›ใˆใฆใใ ใ•ใ„ใ€‚ LOTTERY_KEYใฏใใ˜ๅผ•ใๆ–ฝ็ญ–ๅŒๅฃซใ‚’ๅŒบๅˆฅใ™ใ‚‹ใŸใ‚ใฎ่ญ˜ๅˆฅๅญใงใ™ใ€‚ๅฝ“ใŸใ‚Šๆ™‚ใฎใ‚คใƒ™ใƒณใƒˆ็ญ‰ใซๅซใพใ‚Œใพใ™ใ€‚

var CRAFT_ENDPOINT_URL = “https://xxx.cev2.karte.io/functions/yyyyy";var LOTTERY_KEY = “lottery_key”;widget.setVal(“isLoading”, false);widget.method(“onClick”, function () { // Display loading indicator until the request is complete widget.setVal(“isLoading”, true); // Send the lottery request fetchData(function (item, error) { if (error) { console.error(error); widget.setState(3); // State for error: not winning } else { widget.setVal(“result”, item.result); // Change the state based on whether a prize was won if (item.result && item.result !== “No prize won”) { widget.setState(2); // State for winning } else { widget.setState(3); // State for not winning } } widget.setVal(“isLoading”, false); });});function fetchData(cb) { var payload = { userId: “#{user_id}”, lotteryKey: LOTTERY_KEY, }; fetch(CRAFT_ENDPOINT_URL, { method: “POST”, headers: { “Content-Type”: “application/json”, }, body: JSON.stringify(payload), }) .then(function (response) { return response.json(); }) .then(function (item) { cb(item); }) .catch(function (err) { cb(null, err); });}widget.show();

ใใ˜ๅผ•ใใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ใฎๅฎŸ่ฃ…

ใใ˜ๅผ•ใใฎ็ตๆžœใซๅฟœใ˜ใฆ่กจ็คบใ•ใ‚Œใ‚‹ๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใฏไปฅไธ‹ใฎ้€šใ‚Šใงใ™ใ€‚ ใƒฆใƒผใ‚ถใƒผใŒใ€Œใใ˜ใ‚’ๅผ•ใใ€ใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ™ใ‚‹ใจใ€JavaScriptใŒCraft Functionsใธใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’้€ไฟกใ—ใ€็ตๆžœใซๅฟœใ˜ใฆๅฝ“ใŸใ‚ŠใพใŸใฏใƒใ‚บใƒฌใฎ็”ป้ขใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚

<div class=“karte-temp-whole”> <div class=“karte-temp-state1” krt-if=“state==1”> <i class=“karte-temp-close karte-close karte-temp-hover” krt-if=”#{close.use}"></i> <div class=“karte-temp-card”> <div class=“karte-temp-mainvisual”><img src="#{mainvisual}" alt="#{mainvisual_alt}" /></div> <div class=“karte-temp-wrap”> <div class=“karte-temp-title”>#{title}</div> <div class=“karte-temp-description”>#{description}</div> <a class=“karte-temp-btn karte-temp-hover” krt-on:click=“onClick”> <span krt-if="!isLoading">#{btn}</span> <div krt-else class=“drawing”> <i class=“loader” aria-hidden=“true”></i> #{loading_btn} </span> </a> </div> </div> </div> <div class=“karte-temp-state1” krt-if=“state==2”> <i class=“karte-temp-close karte-close karte-temp-hover” krt-if="#{close.use}"></i> <div class=“karte-temp-card”> <div class=“karte-temp-mainvisual”><img src="#{winvisual}" alt="#{winvisual_alt}" /></div> <div class=“karte-temp-wrap”> <div class=“karte-temp-title”>{{result}}#{win_title}</div> </div> </div> </div> <div class=“karte-temp-state1” krt-if=“state==3”> <i class=“karte-temp-close karte-close karte-temp-hover” krt-if="#{close.use}"></i> <div class=“karte-temp-card”> <div class=“karte-temp-mainvisual”><img src="#{losevisual}" alt="#{losevisual_alt}" /></div> <div class=“karte-temp-wrap”> <div class=“karte-temp-title”>#{lose_title}</div> </div> </div> </div></div>ๅฎŸ้š›ใซใฏๆŽฅๅฎขใ‚ตใƒผใƒ“ใ‚นใ‚’้…ไฟกใ—ใŸใ„็Šถๆณใซๅˆใ‚ใ›ใŸ้…ไฟก่จญๅฎšใ‚’ๅฎŸๆ–ฝใ—ใฆใใ ใ•ใ„ใ€‚

ๅฎŸ้š›ใซๅ‹•ใ‹ใ—ใฆใฟใ‚‹

่จญๅฎšใŒๅฎŒไบ†ใ—ใŸใ‚‰ใ€ๅฎŸ้š›ใซๅ‹•ไฝœใ‚’็ขบ่ชใ—ใฆใฟใพใ—ใ‚‡ใ†ใ€‚

ใพใšใฏใ€ใใ˜ใ‚’ๅผ•ใใƒœใ‚ฟใƒณใ‚’ๆŠผไธ‹ใ™ใ‚‹ใจใ“ใ‚ใ‹ใ‚‰ๅง‹ใ‚ใพใ™ใ€‚ใใ˜ๅผ•ใใŒๅง‹ใพใ‚Šใ€็ตๆžœใŒ่กจ็คบใ•ใ‚Œใ‚‹ใƒ—ใƒญใ‚ปใ‚นใ‚’ไปฅไธ‹ใฎ็”ปๅƒใง็ขบ่ชใงใใพใ™ใ€‚

lucky_draws_won3prize

ๆฌกใซใ€่จญๅฎšใ‚’ๅค‰ๆ›ดใ—ใฆใ€ๅฝ“ใŸใ‚ŠใฎไธŠ้™ๆ•ฐใ‚’0ใซใ—ใฆใฟใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ใ™ในใฆใฎใƒฆใƒผใ‚ถใƒผใŒใƒใ‚บใƒฌใซใชใ‚‹ใฏใšใงใ™ใ€‚

lucky_draws_000

ไธŠ่จ˜ใฎ่จญๅฎšๅค‰ๆ›ดๅพŒใ€ๅ†ๅบฆใใ˜ใ‚’ๅผ•ใใƒœใ‚ฟใƒณใ‚’ๆŠผไธ‹ใ™ใ‚‹ใจใ€ไปฅไธ‹ใฎใ‚ˆใ†ใซใƒใ‚บใƒฌใŒๅ‡บใ‚‹ใ“ใจใŒ็ขบ่ชใงใใพใ™ใ€‚

lucky_draws_lose

ใใ˜ๅผ•ใๆฉŸ่ƒฝใฎๅ‹•ไฝœ็ขบ่ชใŒ่กŒใˆใฆใ€่จญๅฎšใซๅฟœใ˜ใŸ็ตๆžœใŒๅพ—ใ‚‰ใ‚Œใ‚‹ใ“ใจใŒใ‚ใ‹ใ‚Šใพใ—ใŸใ€‚

ใใ˜ๅผ•ใใ‚คใƒ™ใƒณใƒˆใฎ้€ไฟกใซใคใ„ใฆ

ใใ˜ๅผ•ใใ‚’ใ™ใ‚‹ใจใ€ๅฝ“ใŸใ‚Šใ‚„ใƒใ‚บใƒฌใฎ็ตๆžœใซๅฟœใ˜ใฆใ‚คใƒ™ใƒณใƒˆใŒFunctionsใ‹ใ‚‰้€ไฟกใ•ใ‚Œใพใ™ใ€‚

  • ๅฝ“ใŸใ‚Šใฎใ‚คใƒ™ใƒณใƒˆ: lucky_draws_event_win
  • ใƒใ‚บใƒฌใฎใ‚คใƒ™ใƒณใƒˆ: lucky_draws_event_lose

ไพ‹ใˆใฐใ€้‹็”จไธŠใงๅฝ“ใŸใ‚Šใƒฆใƒผใ‚ถใƒผใฎไธ€่ฆงใ‚’ๆŠฝๅ‡บใ—ใŸใ„ๅ ดๅˆใชใฉใ€ๅฏพ่ฑก่€…ใ‚’Datahubใ‚ฏใ‚จใƒชใงๆŠฝๅ‡บใ™ใ‚‹ใ“ใจใŒๅฏ่ƒฝใงใ™ใ€‚

ใŠใ‚ใ‚Šใซ

ๆœฌ่จ˜ไบ‹ใงใฏใ€Craft FunctionsใจCraft Counterใ‚’ไฝฟใฃใฆใ€ๅฝ“ใŸใ‚ŠไธŠ้™ๆ•ฐใ‚’่€ƒๆ…ฎใ—ใŸใใ˜ๅผ•ใๆ–ฝ็ญ–ใฎไฝœใ‚Šๆ–นใ‚’ใ”็ดนไป‹ใ—ใพใ—ใŸใ€‚

ไปŠๅ›žใฎใ‚ฝใƒชใƒฅใƒผใ‚ทใƒงใƒณใงใฏๅฝ“ใŸใ‚Š็ขบ็Ž‡ใŒๅฝ“ใŸใ‚Šๆฎ‹ๆ•ฐใซๅฟœใ˜ใฆๅค‰ๅ‹•ใ™ใ‚‹ใŸใ‚ใ€ใ€Œไบˆๅฎšใ—ใฆใ„ใŸๆ•ฐใ‚ˆใ‚Šๅฝ“ใŸใ‚Šๆ•ฐใ‚’ๅ‡บใ—ใฆใ—ใพใฃใŸใ€ใจใ„ใ†ไบ‹ๆ…‹ใ‚’ใ€้‹็”จใฎๆ‰‹้–“ใ‚’ใ‹ใ‘ใšใซ่‡ชๅ‹•ใง้ฟใ‘ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

ใƒ—ใƒฌใ‚คใƒ‰ใงใฏใ€ไธ–ใฎไธญใซใ‚คใƒณใƒ‘ใ‚ฏใƒˆใ‚’ไธŽใˆใ‚‹ๆ–ฐใ—ใ„ใ‚ฝใƒชใƒฅใƒผใ‚ทใƒงใƒณใ‚’ไธ€็ท’ใซใคใใ‚‹ไปฒ้–“ใ‚’ๅ‹Ÿ้›†ใ—ใฆใ„ใพใ™๏ผใœใฒๆฐ—่ปฝใซใŠๅ•ใ„ๅˆใ‚ใ›ใใ ใ•ใ„ใ€‚

โ†“ ใƒ‘ใƒผใƒˆใƒŠใƒผไผๆฅญใซใชใ‚ŠใŸใ„

  • CustomerData-Driven Solution ใ‚’ไธ€็ท’ใซๅ‰ตใ‚Šใพใ›ใ‚“ใ‹๏ผŸ | PLAID Ecosystem

โ†“ PLAIDใงๅƒใใŸใ„

  • Customer Engineer | ๅ‹Ÿ้›†ใƒใ‚ธใ‚ทใƒงใƒณ | ๆ ชๅผไผš็คพใƒ—ใƒฌใ‚คใƒ‰
  • Product Engineer | ๅ‹Ÿ้›†ใƒใ‚ธใ‚ทใƒงใƒณ | ๆ ชๅผไผš็คพใƒ—ใƒฌใ‚คใƒ‰

Tags :- Craft Functions

  • KARTE Web/App

Share :-

  • Craft Functions

  • KARTE Web/App

ใ“ใฎSolutionใ‚’KARTE Craftใงๅˆฉ็”จใ™ใ‚‹โ€ปKARTE Craftใ‚’ใพใ ๆœ‰ๅŠนๅŒ–ใ—ใฆใ„ใชใ„ๅ ดๅˆใฏใ“ใกใ‚‰ใ‹ใ‚‰ใŠๅ•ใ„ๅˆใ‚ใ›ใใ ใ•ใ„๏ผ

FAQ

ใ‚ใฟใ ใใ˜ใจไผผใŸใ‚„ใคใฏไฝ•ใงใ™ใ‹๏ผŸ

ใใ˜๏ผใŠใฟใใ˜๏ผใ‚ใฟใ ใใ˜๏ผๅฎใใ˜๏ผ็ฆๅผ•ใ ใฎๅ…ฑ้€šใ™ใ‚‹ๆ„ๅ‘ณ ๅŒใ˜ๅฝขใฎๅคšใใฎ็ด™ใ‚„ๆœจใชใฉใซใ€ๆ•ฐๅญ—ใ€ๆ–‡ๅญ—็ฌฆๅทใ€่ชžๅฅใชใฉใ‚’่จ˜ใ—ใ€ใใ‚Œใ‚’ๅ„่‡ชใซๅผ•ใ‹ใ›ใ‚‹ใ“ใจ

ใ‚ใฟใ ใใ˜ใจไผผใŸใ‚„ใคใฏไฝ•ใงใ™ใ‹๏ผŸ

ใใ˜๏ผใŠใฟใใ˜๏ผใ‚ใฟใ ใใ˜๏ผๅฎใใ˜๏ผ็ฆๅผ•ใ ใฎๅ…ฑ้€šใ™ใ‚‹ๆ„ๅ‘ณ ๅŒใ˜ๅฝขใฎๅคšใใฎ็ด™ใ‚„ๆœจใชใฉใซใ€ๆ•ฐๅญ—ใ€ๆ–‡ๅญ—็ฌฆๅทใ€่ชžๅฅใชใฉใ‚’่จ˜ใ—ใ€ใใ‚Œใ‚’ๅ„่‡ชใซๅผ•ใ‹ใ›ใ‚‹ใ“ใจ

ใƒ“ใƒณใ‚ดใƒซใƒผใƒฌใƒƒใƒˆใ‚ขใƒ—ใƒชใฎใŠใ™ใ™ใ‚ใฏ๏ผŸ

ๆŠผใ—ใŸใฎ่ชฐใ !? ใฏใ€ใƒ†ใƒฌใƒ“ใงใ‚ˆใ่ฆ‹ใ‚‹ใƒˆใƒผใ‚ฟใƒฉใ‚คใ‚ถใƒผ(ใ€Œโ—‹โ—‹ใ ใจๆ€ใ†ไบบใ€ใ‚นใ‚คใƒƒใƒใ‚ชใƒณ!ใ€ใฃใฆใ‚ขใƒณใ‚ฑใƒผใƒˆใงไฝฟใ‚ใ‚Œใ‚‹ๆฉŸๆขฐ)ใ‚’ๅ†็พใ—ใŸใ‚ขใƒ—ใƒชใงใ™ใ€‚ ใ“

ๆŠฝ้ธใ‚ขใƒ—ใƒชใจใฏไฝ•ใงใ™ใ‹๏ผŸ

ๅคงไบบๆ•ฐใงใฎๅฝ“็•ชใ‚„ใ‚ฐใƒซใƒผใƒ—ๆฑบใ‚ใ€ใƒ‘ใƒผใƒ†ใ‚ฃใƒผใงใฎใƒ—ใƒฌใ‚ผใƒณใƒˆไบคๆ›ใ€ใฏใŸใพใŸไปŠๆ—ฅใฎ็Œฎ็ซ‹ใชใฉใ€ใƒ‘ใƒƒใจๆฑบใ‚ใŸใ„ใ“ใจใŒใ‚ใ‚‹ใจใใซไพฟๅˆฉใชใ‚นใƒžใƒ›ใฎใ€ŒๆŠฝ้ธใ‚ขใƒ—ใƒช

ใ‚ชใƒณใƒฉใ‚คใƒณใ‚ซใ‚ธใƒŽใฎๅฐŽๅ…ฅใฏใƒซใƒผใƒฌใƒƒใƒˆใ‚ฒใƒผใƒ ใซใฉใฎใ‚ˆใ†ใชๅฝฑ้Ÿฟใ‚’ไธŽใˆใพใ—ใŸใ‹?

ใ‚ชใƒณใƒฉใ‚คใƒณใ‚ซใ‚ธใƒŽใฎๅฐŽๅ…ฅใฏใƒซใƒผใƒฌใƒƒใƒˆใ‚ฒใƒผใƒ ใซใฉใฎใ‚ˆใ†ใชๅฝฑ้Ÿฟใ‚’ไธŽใˆใพใ—ใŸใ‹? ใ‚ชใƒณใƒฉใ‚คใƒณใ‚ซใ‚ธใƒŽใฎๅฐŽๅ…ฅใฏใƒซใƒผใƒฌใƒƒใƒˆใ‚ฒใƒผใƒ ใซๅคงใใชๅฝฑ้Ÿฟใ‚’ไธŽใˆใพใ—ใŸใ€‚ใ‚ช

ๆŠฝ้ธใ‚ขใƒ—ใƒชใจใฏไฝ•ใงใ™ใ‹๏ผŸ

ๅคงไบบๆ•ฐใงใฎๅฝ“็•ชใ‚„ใ‚ฐใƒซใƒผใƒ—ๆฑบใ‚ใ€ใƒ‘ใƒผใƒ†ใ‚ฃใƒผใงใฎใƒ—ใƒฌใ‚ผใƒณใƒˆไบคๆ›ใ€ใฏใŸใพใŸไปŠๆ—ฅใฎ็Œฎ็ซ‹ใชใฉใ€ใƒ‘ใƒƒใจๆฑบใ‚ใŸใ„ใ“ใจใŒใ‚ใ‚‹ใจใใซไพฟๅˆฉใชใ‚นใƒžใƒ›ใฎใ€ŒๆŠฝ้ธใ‚ขใƒ—ใƒช

ๆŠฝ้ธใ‚ขใƒ—ใƒชใจใฏไฝ•ใงใ™ใ‹๏ผŸ

ๅคงไบบๆ•ฐใงใฎๅฝ“็•ชใ‚„ใ‚ฐใƒซใƒผใƒ—ๆฑบใ‚ใ€ใƒ‘ใƒผใƒ†ใ‚ฃใƒผใงใฎใƒ—ใƒฌใ‚ผใƒณใƒˆไบคๆ›ใ€ใฏใŸใพใŸไปŠๆ—ฅใฎ็Œฎ็ซ‹ใชใฉใ€ใƒ‘ใƒƒใจๆฑบใ‚ใŸใ„ใ“ใจใŒใ‚ใ‚‹ใจใใซไพฟๅˆฉใชใ‚นใƒžใƒ›ใฎใ€ŒๆŠฝ้ธใ‚ขใƒ—ใƒช

ๆ˜ ็”ปใ‚„ๆ–‡ๅญฆใชใฉใฎๅคง่ก†ๆ–‡ๅŒ–ใซใŠใ„ใฆใƒซใƒผใƒฌใƒƒใƒˆใฏใฉใฎใ‚ˆใ†ใชๅฝนๅ‰ฒใ‚’ๆžœใŸใ—ใพใ—ใŸใ‹?

ใƒซใƒผใƒฌใƒƒใƒˆใฏๆ˜ ็”ปใ‚„ๆ–‡ๅญฆใชใฉใฎๅคง่ก†ๆ–‡ๅŒ–ใฎไธญใงใฉใฎใ‚ˆใ†ใชๅฝนๅ‰ฒใ‚’ๆžœใŸใ—ใพใ—ใŸใ‹? ใƒซใƒผใƒฌใƒƒใƒˆใฏๅคง่ก†ๆ–‡ๅŒ–ใซใŠใ„ใฆ้‡่ฆใชๅฝนๅ‰ฒใ‚’ๆžœใŸใ—ใฆใŠใ‚Šใ€ๆ•ฐๅคšใใฎๆ˜ ็”ป

ใƒ“ใƒณใ‚ดใƒซใƒผใƒฌใƒƒใƒˆใ‚ขใƒ—ใƒชใฎใŠใ™ใ™ใ‚ใฏ๏ผŸ

ๆŠผใ—ใŸใฎ่ชฐใ !? ใฏใ€ใƒ†ใƒฌใƒ“ใงใ‚ˆใ่ฆ‹ใ‚‹ใƒˆใƒผใ‚ฟใƒฉใ‚คใ‚ถใƒผ(ใ€Œโ—‹โ—‹ใ ใจๆ€ใ†ไบบใ€ใ‚นใ‚คใƒƒใƒใ‚ชใƒณ!ใ€ใฃใฆใ‚ขใƒณใ‚ฑใƒผใƒˆใงไฝฟใ‚ใ‚Œใ‚‹ๆฉŸๆขฐ)ใ‚’ๅ†็พใ—ใŸใ‚ขใƒ—ใƒชใงใ™ใ€‚ ใ“

ใ“ใฎใ‚ตใ‚คใƒˆใงใฏ้–ข้€ฃใ™ใ‚‹่จ˜ไบ‹ใฎใฟใ‚’ๅŽ้›†ใ—ใฆใ„ใพใ™ใ€‚ใ‚ชใƒชใ‚ธใƒŠใƒซใ‚’่กจ็คบใ™ใ‚‹ใซใฏใ€ไปฅไธ‹ใฎใƒชใƒณใ‚ฏใ‚’ใ‚ณใƒ”ใƒผใ—ใฆ้–‹ใ„ใฆใใ ใ•ใ„ใ€‚Craft FunctionsใจCraft Counterใงๅฝ“ใŸใ‚ŠไธŠ้™ๆ•ฐใฎใ‚ใ‚‹ใใ˜ๅผ•ใๆ–ฝ็ญ–ใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹

๐Ÿ”ฅ ๐ŸŽฎ ใใ˜ๅผ•ใใ‚ขใƒ—ใƒช ๐ŸŽฎ
๐ŸŽฎ ๆœ€ๆ–ฐ่จ˜ไบ‹ ๐ŸŽญ ๐ŸŽ€ ไบบๆฐ—่จ˜ไบ‹ ๐ŸŽน
๐ŸŽณ ใŠใ™ใ™ใ‚่จ˜ไบ‹ ๐ŸŽˆ
# ่จ˜ไบ‹ใฎใ‚ฟใ‚คใƒˆใƒซ ใ‚ญใƒผใƒฏใƒผใƒ‰ ่จ˜ไบ‹ใฎใƒชใƒณใ‚ฏ ่จ˜ไบ‹ใฎ่ฉณ็ดฐ

ใ€ๅนนไบ‹ใ•ใ‚“ใฎใƒ„ใƒœใ€‘็ตๅฉšๅผใฎไบŒๆฌกไผšใชใฉใฎใ‚คใƒ™ใƒณใƒˆๅนนไบ‹ใ•ใ‚“ใ‚’ใ€ๅŠ›ๅผทใใŠๆ‰‹ไผใ„ใ™ใ‚‹็ทๅˆๅฎดไผšๅฟœๆดใ‚ตใ‚คใƒˆ ็ฝฐใ‚ฒใƒผใƒ ้›†ใ€ๅนนไบ‹ใ•ใ‚“ใŠๅŠฉใ‘ใ‚ขใƒ—ใƒช ใ‚ฒใƒƒใƒˆใ‚ฏใƒฉใƒ–ใ€‘ๆŠฝ้ธใƒซใƒผใƒฌใƒƒใƒˆ็”จ๏ฝœ็ตๅฉšๅผไบŒๆฌกไผšใ‚„ๅฎดไผšใชใฉใฎใ‚คใƒ™ใƒณใƒˆๅนนไบ‹ใ•ใ‚“ใ‚’ๅŠ›ๅผทใใŠๆ‰‹ไผใ„ใ™ใ‚‹็ทๅˆๅฎดไผšๅฟœๆดใ‚ตใ‚คใƒˆ๏ผใƒ‘ใƒผใƒ†ใ‚ฃใƒผใ‚ฒใƒผใƒ ้›†ใ‚„ๆฎตๅ–ใ‚Šใƒใ‚งใƒƒใ‚ฏ่กจใซใƒฏใƒณใƒใ‚คใƒณใƒˆใ‚ขใƒ‰ใƒใ‚คใ‚นใชใฉ็ดนไป‹ใ€‚

็ฝฐใ‚ฒใƒผใƒ ้›†ใ€ๅนนไบ‹ใ•ใ‚“ใŠๅŠฉใ‘ใ‚ขใƒ—ใƒช ใ‚ฒใƒƒใƒˆใ‚ฏใƒฉใƒ–ใ€‘ๆŠฝ้ธใƒซใƒผใƒฌใƒƒใƒˆ็”จ๏ฝœ็ตๅฉšๅผไบŒๆฌกไผšใ‚„ๅฎดไผšใชใฉใฎใ‚คใƒ™ใƒณใƒˆๅนนไบ‹ใ•ใ‚“ใ‚’ๅŠ›ๅผทใใŠๆ‰‹ไผใ„ใ™ใ‚‹็ทๅˆๅฎดไผšๅฟœๆดใ‚ตใ‚ค

10/14

ใŠใ™ใ™ใ‚ใฎใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใ‚ขใƒ—ใƒชใƒฉใƒณใ‚ญใƒณใ‚ฐ๏ผใฟใ‚“ใชใŒไฝฟใฃใฆใ„ใ‚‹ใ‚นใƒžใƒ›ใ‚ขใƒ—ใƒชใฏใ“ใ‚Œ AppBank Home ใƒฉใƒณใ‚ญใƒณใ‚ฐ ็”Ÿๆดปใ‚’ไพฟๅˆฉใซใ™ใ‚‹ใ‚ขใƒ—ใƒช ้ฃฒใฟไผšใƒปๅฎดไผšใ‚ขใƒ—ใƒช ใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใ‚ขใƒ—ใƒช ใ“ใฎใƒšใƒผใ‚ธใงใฏใŠใ™ใ™ใ‚ใฎใ€Œใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใ‚ขใƒ—ใƒชใ€ใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚AppBankใ‚ขใƒ—ใƒช่ชฟๆŸป้ƒจใงๅŽณ้ธใ—ใ‚จใƒณใƒˆใƒชใƒผใ—ใŸใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใ‚ขใƒ—ใƒชใ‚’ใ€ใ‚ค

Home ใƒฉใƒณใ‚ญใƒณใ‚ฐ ็”Ÿๆดปใ‚’ไพฟๅˆฉใซใ™ใ‚‹ใ‚ขใƒ—ใƒช ้ฃฒใฟไผšใƒปๅฎดไผšใ‚ขใƒ—ใƒช ใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใ‚ขใƒ—ใƒช ใ“ใฎใƒšใƒผใ‚ธใงใฏใŠใ™ใ™ใ‚ใฎใ€Œใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใ‚ขใƒ—ใƒชใ€ใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„

10/14

ใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใใ˜ใ‚ขใƒ—ใƒชใฎๆœ€ๆ–ฐใŠใ™ใ™ใ‚ไบบๆฐ—ใƒฉใƒณใ‚ญใƒณใ‚ฐ9้ธ iPhoneใƒปAndroidๅฏพๅฟœใฎใ‚นใƒžใƒ›ใ‚ขใƒ—ใƒชๆŽขใ™ใชใ‚‰.Apps ใ€Œใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใใ˜ใ€ใ‚ขใƒ—ใƒชใจใฏใ‚นใƒžใƒผใƒˆใƒ•ใ‚ฉใƒณใ‚„ใƒ‘ใ‚ฝใ‚ณใƒณใฎ็ซฏๆœซใ‚’ไฝฟ็”จใ—ใฆใใ˜ๅผ•ใใ‚„ใ‚ฌใƒฉใ‚ฌใƒฉใใ˜ใฎๆŠฝ้ธใ‚’่กŒใฃใฆใใ‚Œใ‚‹ไพฟๅˆฉใชใ‚ขใƒ—ใƒชใงใ™ใ€‚ ใ‚ฏใƒชใ‚นใƒžใ‚นใ‚„ใƒ‘ใƒผใƒ†ใ‚ฃใƒผใชใฉใฎใ‚คใƒ™ใƒณใƒˆใ€็ดๆถผ็ฅญใ‚„่Šฑ็ซๅคงไผšใชใฉใฎใŠ็ฅญใ‚Šใงใใ˜ๅผ•ใใ‚„ใ‚ฌใƒฉใ‚ฌใƒฉใใ˜ใŒๅฟ…่ฆใชใจใใฃใฆใ‚ใ‚Šใพใ›ใ‚“ใ‹๏ผŸ ใใ‚“ใชใจใใ‚ใ–ใ‚ใ–็ด™ใซๆ•ฐๅญ—ใ‚’ๆ›ธใ„ใฆ็”จๆ„ใ—ใฆๅพŒ็‰‡ไป˜ใ‘ใ‚‚ใ‚ใ‚‹ใจใชใ‚‹ใจ้ขๅ€’ใงใ™ใ‚ˆใญใ€‚ ใใ‚“ใชใจใใฏใœใฒใ€ใใ˜ๅผ•ใใ‚„ใ‚ฌใƒฉใ‚ฌใƒฉใใ˜ใฎใ‚ขใƒ—ใƒชใ‚’ไฝฟใฃใฆใ„ใŸใ ใใŸใ„ใงใ™ใ€‚ ใ‚นใƒžใƒผใƒˆใƒ•ใ‚ฉใƒณใ‚„ใƒ‘ใ‚ฝใ‚ณใƒณใงๆŠฝ้ธใงใใ‚‹ใฎใง้ขๅ€’ใชๆบ–ๅ‚™ใ‚’ใ™ใ‚‹ๅฟ…่ฆใ‚‚ใชใใ‚นใƒ ใƒผใ‚บใซๆŠฝ้ธใ‚’่กŒใˆใพใ™ใ€‚ ใพใŸใ€ๅพŒ็‰‡ไป˜ใ‘ใ‚‚ใ‚ใ‚Šใพใ›ใ‚“ใ€‚ ๆ•ฐๅญ—ใŒ่ถณใ‚Šใชใ„๏ผๆžšๆ•ฐใŒ่ถณใ‚Šใชใ„๏ผใจใ„ใ†ใ“ใจใ‚‚ใชใ„ใฎใงใจใฆใ‚‚ๅฝน็ซ‹ใคใจๆ€ใ„ใพใ™ใ€‚ ใœใฒ็ฉๆฅต็š„ใซใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใฆๅˆฉ็”จใ—ใฆใฟใฆใฏใ„ใ‹ใŒใงใ—ใ‚‡ใ†ใ‹ใ€‚

ใ€Œใใ˜ๅผ•ใใƒปใ‚ฌใƒฉใ‚ฌใƒฉใใ˜ใ€ใ‚ขใƒ—ใƒชใจใฏใ‚นใƒžใƒผใƒˆใƒ•ใ‚ฉใƒณใ‚„ใƒ‘ใ‚ฝใ‚ณใƒณใฎ็ซฏๆœซใ‚’ไฝฟ็”จใ—ใฆใใ˜ๅผ•ใใ‚„ใ‚ฌใƒฉใ‚ฌใƒฉใใ˜ใฎๆŠฝ้ธใ‚’่กŒใฃใฆใใ‚Œใ‚‹ไพฟๅˆฉใชใ‚ขใƒ—ใƒชใงใ™ใ€‚ ใ‚ฏใƒช

10/14

ใ€ŒJRไนๅทžใ‚ขใƒ—ใƒชใใ˜ๅˆ‡็ฌฆใ€7ๆœˆ1ๆ—ฅ็™บๅฃฒใ€5ๅƒๅ††ใงๅšๅคš็™บใฎไนๅทžๅ†…ๅพ€ๅพฉใใฃใทใŒๅฟ…ใšๅฝ“ใŸใ‚‹ ใ€Œไนๅทžใ‚ขใƒ—ใƒชใใ˜ใใฃใทใ€ใฎๅ†…ๅฎน่ฉณ็ดฐใ‚„่ณผๅ…ฅใƒปๅˆฉ็”จๆ–นๆณ•ใชใฉ่ฉณใ—ใ่งฃ่ชฌใ€‚1ๅ›ž5ๅƒๅ††ใงJRไนๅทžๅ†…ใฎๅพ€ๅพฉใใฃใทใŒๅฝ“ใŸใ‚‹ใ‚ฌใƒใƒฃๅˆ‡็ฌฆใงใ™ใ€‚ๅคงๅฝ“ใŸใ‚Šใฏใ€JRไนๅทž็ฎกๅ†…ใฎ็‰นๆ€ฅใ‚„ๆ–ฐๅนน็ทšใ‚’ๅซใ‚€ๆ™ฎ้€š่ปŠ่‡ช็”ฑๅธญใŒไน—ใ‚Š้™ใ‚Šๆ”พ้กŒใซใชใ‚‹JRไนๅทž็ทš3ๆ—ฅ้–“ไน—ใ‚Šๆ”พ้กŒใใฃใทใงใ™ใ€‚ๆ—…ๅ…ˆใงใฎๅฎฟๆณŠใฏใ€ใ‚ฏใƒผใƒใƒณใ‚’ไฝฟใฃใŸใŠๅพ—ใชใƒ›ใƒ†ใƒซไบˆ็ด„ๆ–นๆณ•ใ‚’ไผๆŽˆใ€‚

‘ใ€Œไนๅทžใ‚ขใƒ—ใƒชใใ˜ใใฃใทใ€ใฎๅ†…ๅฎน่ฉณ็ดฐใ‚„่ณผๅ…ฅใƒปๅˆฉ็”จๆ–นๆณ•ใชใฉ่ฉณใ—ใ่งฃ่ชฌใ€‚1ๅ›ž5ๅƒๅ††ใงJRไนๅทžๅ†…ใฎๅพ€ๅพฉใใฃใทใŒๅฝ“ใŸใ‚‹ใ‚ฌใƒใƒฃๅˆ‡็ฌฆใงใ™ใ€‚ๅคง

10/14
Free Game