Laravel+Slack௨Ͱ࣮ફͨ͠ϦΞϧλΠϜΤϥʔڞ༗։ൃLaravel Meetup Tokyo Vol.122019/05/22Miyake Yusuke
View Slide
ࣗݾհ͘·ϞϯΤϯδχΞ(@miyakey7)ॴଐɹגࣜձࣾITϓϩύʔτφʔζϝϞɹɾ࣮Ո͘·ϞϯγϣοϓɹɾڈɺWEBΤϯδχΞʹస৬ɹɾLaravelJPConferance2019͓ख͍͠·ͨ͠
ϑϦʔϥϯεɺىۀՈࢧԉαʔϏεʮITϓϩύʔτφʔζʯίʔυڞ༗αʔϏεʮReviewMeʯ͘͘ձʮProLaboʯ
1ਓͰ։ൃ͍ͯͨ͠ϓϩδΣΫτʹΤϯδχΞ͕2ਓδϣΠϯͨ͠
WEBΤϯδχΞͱͯ͠ॳͷνʔϜ։ൃ
νʔϜ։ൃΛ׆͔͢औΓΈͳ͍͔
ϖΞϓϩʁϞϒϓϩʁϥΠϒίʔσΟϯάʁ։ൃ߹॓ʁ
ΤϥʔΛڞ༗ͯ͠ΈΜͳͰղܾ͢ΔΈ͕ཉ͍͠
ΤϥʔΛڞ༗͍ͨ͠ཧ༝ᶃΤϥʔʹର͢Δɹࣗͷݟͷڞ༗ᶄ࣭͕ۤखͳɹ৽ਓΤϯδχΞͷҭ
Τϥʔڞ༗ͷΈΛߟ͑ͨAPIαʔόʔಉҰwebhookΛར༻ϝοηʔδʹϘλϯΞΫγϣϯΛ͚͓ͯ͘POSTϘλϯΞΫγϣϯͷԠΛฦ͢
Slack௨ͷ࣮ʹ͍ͭͯ؆୯ʹग़དྷΔSlack௨࣮खஈେମ3ͭᶃLog௨ᶄNotificationΫϥε(Guzzle)ᶅhttpClientϥΠϒϥϦ(Guzzle)
ᶃLog௨Ͱ࣮
؆୯ʹग़·͢ʂ
Τϥʔϩάtraceશ෦ग़ΔͷͰͪΐͬͱՄࢹੑ͕Լ͕Δ
ᶄNotificationΫϥεͰ࣮v5.7.14 Ҏ͔߱Ͳ͏͔Ͱ࣮ͷ४උํ๏͕มΘΓ·͢ʂSlackMessage.phpͳͲͷϑΝΠϧ͕֎෦ͷύοέʔδʹग़͞Ε͍ͯ·͢ʂ
v5.7.14ະຬv5.7.14Ҏ߱
Կ͔͠ΒͷΫϥεʹɾNotifiableΛuseɾrouteNotificationForSlackͰɹSlackͷwebhookͷURLΛ͢ɾnotifyΛίʔϧ͢Δ
֎෦ύοέʔδʹͳ͔ͬͯΒɺSlackMessageΫϥεͰϘλϯΞΫγϣϯ༻ͷઃఆ͕༻ҙ͞Ε͍ͯΔͨͩ͠ϘλϯΫϦοΫ࣌ʹ༻ҙ͞Ε͍ͯΔΞΫγϣϯURLʹඈͿ͚ͩ
ᶅhttpClientϥΠϒϥϦ݁ہɺSlackͷAPIػೳΛ৭ʑ͏ͳΒࣗͰϑΥʔϚοτॻ͍ͨํ͕ૣ͍
Slack͔ΒͷPOSTΛड͚͚Δํ๏Request URLͷ෦ʹΤϯυϙΠϯτΛઃఆ→͜ΕʹΑΓϘλϯԡԼ࣌ʹPOST͕௨͞ΕΔ
Slack͔ΒͷPOSTΛड͚͚Δํ๏APIΤϯυϙΠϯτͷURLɺCSRFτʔΫϯνΣοΫΛ֎͢
Slack͔ΒͷPOSTΛड͚͚Δํ๏ݩͷSlackϝοηʔδʹɺϘλϯԡԼͨ͠ਓͷ໊લΛͯ͠ԠΛฦ͢ॲཧ
ϦΞϧλΠϜΤϥʔڞ༗௨ɾΤϥʔ༰࠷খݶͷ༰ɾHelpܥͷϘλϯΛ͚ͯ୭͕ԡ͔͔ͨ͠ΔΑ͏ʹ
ϦΞϧλΠϜΤϥʔڞ༗։ൃϧʔϧ̏ͭᶃڞ༗͢ΔͷErrorϨϕϧͷϩάᶄৗʹchannelϝϯγϣϯ(νʔϜͰܾΊΔ)ᶅಗ໊Ͱ௨ʹ͓ͯ͘͠
͓લͷΤϥʔԶͷͷԶͷΤϥʔԶͷͷ
ݙతͳΤϥʔڞ༗͢ΔͨΊʹ• հࡏ͗͢͠ͳ͍Α͏ʹҙ• جຊεϧʔ͢Δ৺࣋ͪ• ಉ͡Τϥʔ͕࿈ଓͯͨ͠Βฉ͍ͯΈΔ
։ൃνʔϜͷີ݁߹ྑ͘ͳ͍ʁ
ϦΞϧλΠϜΤϥʔڞ༗։ൃͷϝϦοτɾσϝϦοτϝϦοτ• ΤϥʔͰϋϚΔϦεΫ͕ݮΔ• தʹؤுͬͯΔͷ͕֞ؒݟ͑ΔσϝϦοτ• ूதྗͷܽ• 10ਓҎ্ͷνʔϜͰݫ͍͠
ϦΞϧλΠϜΤϥʔڞ༗։ൃͷ࠷େͷϝϦοτνʔϜશһ͕ಉ͡ͷܦݧ(Τϥʔ)ΛΓӽ͑Δ
࠷ޙʹ…
LARACON US 2019ߦ͖ͬͯ·͢ʂ
ΞϑλʔύʔςΟձ͕ͦ͏