ニュースアプリのAPIにWordPress.comを採用してよかった話。そしてその苦労と嵌りどころ。 / The story thad trouble with wordpresscom

ニュースアプリのAPIにWordPress.comを採用してよかった話。そしてその苦労と嵌りどころ。 / The story thad trouble with wordpresscom

WordCamp Kyoto 2017の登壇資料です。質問などありましたら、 https://twitter.com/rdlabo までご連絡ください。

7ce46cdba50db99f3403024fe2519c91?s=128

Masahiko Sakakibara

June 25, 2017
Tweet

Transcript

  1. Ұൠࣾஂ๏ਓϦϨʔγϣϯσβΠϯݚڀॴ
 ୅දཧࣄɹࡗݪণ඙ χϡʔεΞϓϦͷ"1*ʹ8PSE1SFTTDPNΛ࠾༻ͯ͠ Α͔ͬͨ࿩ɻͦͯͦ͠ͷۤ࿑ͱቕΓͲ͜Ζɻ

  2. ࣗݾ঺հ ࡗݪণ඙ Ұൠࣾஂ๏ਓϦϨʔγϣϯσβΠϯ
 ݚڀॴ୅දཧࣄ Ұൠࣾஂ๏ਓΤϦΞɾ
 ΠϊϕʔγϣϯɾΞϥΠΞϯε$50 ञॲ͔͖͞
 ళओ ຊ೔ͷϋογϡλά
 #wckyoto2017

  3.  ౎಺Ͱঁ༑ͩͪΛ୳͢ঁੑઐ༻Ϛο νϯάαʔϏε  )5.-ʢ*POJD"OHVMBSʣͰͭ͘ ͬͨ8FCJ1IPOF"OESPJEΞϓϦ  ग़ձ͍ܥΞϓϦιʔγϟϧαʔϏε

  4. 1SPEVDU"SFB*OOPWBUJPO3FWJFX  ՝ۚՄೳͳ8FCϚΨδϯʢCFUB൛ʣ  )5.-ʢ*POJD"OHVMBSʣͰͭͬ͘ ͨϋΠϒϦουΞϓϦɻΞϓϦ΋ϦϦʔ ε༧ఆ  8PSE1SFTTDPNͷ"1*Λ׆༻ͯ͠ί ϯςϯπߋ৽Λ༰қʹ

  5. 8PSE1SFTTDPNͬͯʁ օ͞Μ͕࢖ͬͯΔͷ͸ʢଟ෼ʣ 8PSE1SFTTPSH [JQͰμ΢ϯϩʔυͯ͠ɺࣗ෼͕༻ҙ ͨ͠αʔόʹઃஔ͢Δ
 TBLVSBαʔό͕ΫΠοΫΠϯετʔ ϧͰ༻ҙͯ͠Δͷ΋ͪ͜Β

  6. 8PSE1SFTTDPNͬͯʁ DPN͸ɺϗεςΟϯά͞Ε͍ͯΔϒϩ άαʔϏε ͸ͯͳϒϩάΈ͍ͨʹ։ઃͰ͖ΔΑʂ
 ؅ཧը໘͕Θ͔Γ΍͍͢
 ࿩୊ͷ4FSWFS-FTTʂ

  7. PSHͱDPNͷੑೳൺֱ PSH 
 ϓϥάΠϯ๛෋ɻΧελ ϚΠζ์୊ ॻ੶͕ࢁͷΑ͏ʹग़ͯΔ ηΩϡϦςΟ͸ࣗݾ੹೚ DPN 
 ϓϥάΠϯ͸ݶఆతͩ͠

    ςʔϚ͸બ୒ੑ ೔ຊޠ৘ใ΄ͱΜͲͳ͍ ηΩϡϦςΟ͸ৗʹ࠷৽
  8. ຊ౰ʁ ͔ͩΒɺPSHͷํ͕ศརʂ

  9. w 8PSE1SFTTͷόʔδϣϯ͸ৗʹ࠷৽ʹͳͬͯ Δʁ w ͦͷϓϥάΠϯͱࣗ࡞ίʔυɺͣͬͱอक͞Ε ଓ͚Δͱ৴͡ΕΔʁ w ސ٬Λ৴͡Δͳʂ w JQUBCMFͷઃఆ͸େৎ෉ʁ4&-JOVY࠷ۙ੬ऑੑ

    ͖ͨΑʁ w 1)1ɺ·͔͞·ͩܥ͡Όͳ͍ΑͶɻͳΜ ͯαϙʔτશ໘ऴྃͯ͠ΔΑʁ"QBDIFͳ Μͯ࢖ͬͯͳ͍ΑͶʁ w αʔόɺෛՙߴ·ͬͨΒΦʔτεέʔϧ͢Δʁ αʔόϗεςΟϯά͸ةݥ͕͍ͬͺ͍ ෼͔Βͳ͍ݴ༿͋ͬͨʁ
 ͋ͬͨʁʁ
  10. w ʮԿͰ΋PSHʯͷ࣌୅͸ऴΘͬͨ w ͲͪΒͷํ͕ศརɺͰ͸ͳ͘ɺద੾ͳ࢖༻ํ๏Λߟ͑Α͏ ˓˓ͱ᭔͸࢖͍Α͏

  11. w ແྉͩͱςʔϚʹ޿ࠂ͕ͰΔ w ςʔϚ͸ࣗ࡞ɾՃ޻Ͱ͖ͳ͍ w ϓϥάΠϯ͸࢖͑ͳ͍ w جຊతͳ*'͸ɺPSHΑΓ΋্ w ࣥච؀ڥ͸ɺJ1IPOF"OESPJEσΟεΫτοϓΞϓϦ੎ଗ͍

    DPNͷ࢖͍Α͏ ʮ"1*͚ͩ࢖͏ܗʹͨ͠Βਓྨ͸޾ͤʹͳΕΔͷͰ͸ʁʯ
  12.  8PSE1SFTTDPN্Ͱ͸ඇެ։  8PSE1SFTTDPN͸جຊతͳࣥචػೳ͚ͩར༻ʢίϝϯτ ػೳ΍͍͍ͶɺϒοΫϚʔΫػೳ͸ผͰ࣮૷ʣ  3FTU"1*ܦ༝ʹσʔλΛऔಘͯ͠8FCαΠτʹදࣔ ·ͣ͸࢓༷

  13. ·ͣ͸࢓༷

  14. ͬͪ͜͸࢖͍·ͤΜɻ·ͩCFUBͩ͠ɻ

  15. ͜Μͳײ͡ͷ࣮૷ʢγϯϓϧʹͯ͠·͢ʣ const postURL = “https://public- api.wordpress.com/rest/v1.1/sites/$site/posts/ 01”; $.ajax({
 url :

    postURL, 
 }).done((data)=>{
 $(‘#content’).innerHTML = data.content;
 });
  16. ʮաڈͷهࣄ͕݅ఔ౓͋Δ͔Βɺ σʔλҠߦ͠Α͏ʯ ʮख࡞ۀͰ΍ͬͯΒΕͳ͍͔Βɺ 8PSE1SFTTDPNʹ1045͢Δίʔυॻ ͘Αʂʯ ஍ཕ1045ͷ"1*͸஗͍

  17. w 1045ͯ͠ΈΔ w ΊͬͪΌ͕͔͔࣌ؒΔ֬ೝͨ͠Β1045࿙ΕΊͬͪΌଟ ͍ w ࢼ͠ʹTFUJOUFSWBMͯ͠ΈΔ1045࿙Ε͕গͳ͘ͳΔ w େྔσʔλΛ1045͠·ͬͨ͘Βࢮ͵ͷͰɺ݁ہ͸όΠτ Λޏͬͯ໨ࢹͰνΣοΫ

    ஍ཕ1045ͷ"1*͸஗͍
  18. ஍ཕ࠷৽ͷ؅ཧը໘͔͍͍ͬ͜ΑͶʂ

  19. ஍ཕ࠷৽ͷ؅ཧը໘͔͍͍ͬ͜ΑͶʂ w ूதͱબ୒ͰϢʔβϏϦςΟΛߴΊͯΔΑ w ͔ͩΒɺ͜ͷ؅ཧը໘Ͱ͸Ͱ͖ͳ͍͜ͱͨ͘͞Μ͋Δ w ΧςΰϦͷ৽ن࡞੒͸Ͱ͖ͯ΋มߋ͸Ͱ͖ͳ͍ͱ͔ w ʮ8PSE1SFTTDPNͰ΋چ؅ཧը໘΋࢖͓͏Ͷʯ

  20. ஍ཕϒϩάඇެ։ͩͱը૾΁ͷΞΫηεෆՄ ʮ8PSE1SFTTDPN্Ͱ͸هࣄެ։͞Ε ͨ͘ͳ͍ʯ ʮϒϩάશମΛඇެ։ʹ͠Α͏ʂʯ

  21. w هࣄຊจͷऔಘʢ(&5ʣ͸ɺ0BVUIೝূͨ͠ΒՄೳ w Ͳ͏͕Μ͹ͬͯ΋ը૾σʔλΛऔಘͰ͖ͳ͍ w ը૾ͻͱͭͻͱͭʹBKBYͰΞΫηεͯ͠CBTFͳΜͯղܾ ࡦͳ͔ͬͨ w ϒϩάશମ͸ެ։ͯ͠ɺهࣄΛͦΕͧΕඇެ։ʹ͢Δ͜ͱ Ͱղܾ

    w هࣄͷެ։ͱඇެ։ͷ໾ׂΛٯసͤͨ͞Α w ӡ༻ͰΧόʔʂ ஍ཕඇެ։ͩͱը૾΁ͷΞΫηεෆՄೳ
  22. ஍ཕΧςΰϦͷQSJNBSZLFZෆࡏ ʮΧςΰϦϖʔδʹΞΠΩϟονը૾ͭ ͚͍ͨʯ ʮ8PSE1SFTTDPNʹ͸ػೳͳ͍͔Βɺ ࣗ࡞"1*Λॻ͜͏ʯ

  23. w ΧςΰϦ*%͸ɺΧςΰϦΛฤू͢ΔຖʹมΘΔڻዼ w TMVH͸ΧςΰϦ໊͔Βࣗಈੜ੒ΧςΰϦ໊Λม͑ͨΒμ ϝʂ ஍ཕΧςΰϦͷQSJNBSZLFZෆࡏ όά͡Όͳ͍ʁ

  24. ஍ཕΧςΰϦͷQSJNBSZLFZෆࡏ

  25. ஍ཕΧςΰϦͷQSJNBSZLFZෆࡏ

  26. ஍ཕΧςΰϦͷQSJNBSZLFZෆࡏ

  27. ஍ཕΧςΰϦͷQSJNBSZLFZෆࡏ ࢓༷Ͱͨ͠ɻ w λΠτϧͷߦ಄ʹQSJNBSZLFZΛखಈͰೖΕͯɺͦΕΛ࢖ ͏͜ͱʹ w ʲcΧςΰϦ໊ʳͱ͍͏ܗ w ʢهࣄͷQSJNBSZLFZ͸ͪΌΜͱݻఆͩͬͨΑʣ

  28. w ΞΠΩϟονը૾͕εϚϗදࣔͰ͸ ॏ͍ʢΞοϓϩʔυͨ͠ը૾αΠζʣ w υΩϡϝϯτͷͲ͜Έͯ΋ΞΠΩϟο νը૾ͬͯҰछྨ͔͠αΠζͳ͍ w ࣗ෼Ͱը૾Λෳ਺αΠζʹม׵ͯ͠ อଘ͠ͳ͍ͱ͍͚ͳ͍ͷ͔ͱ҉ᖓͳ Δؾ࣋ͪʹ

    ஍ཕ࢓༷ʹͳ͍ը૾αΠζ
  29. ஍ཕ࢓༷ʹͳ͍ը૾αΠζ

  30. w ;ͱچ؅ཧը໘ͷը૾ૠೖΛΈΔͱɺը૾αΠζͷύλʔ ϯ͕ w ·͔͞ͷʮը૾63-ʹ XʯͳͲҾ਺Λ͚ͭΔ͚ͩ Ͱෳ਺αΠζʹΞΫηεՄೳ w ͪͳΈʹຊจ಺ը૾͸TSDTFU͕ࣗಈతʹ͍ͭͯͨʂʢ͜Ε ͸͍͢͝ʣ

    ஍ཕ࢓༷ʹͳ͍ը૾αΠζ
  31. w ͓͍͓͍"1*ͳͷʹ͜Ε͸͍Βͳ͍ͩΖ w EJWEBUBTIPSUDPEFbDBQUJPO`XJEUIb` w ͳ͔ͥXJEUI͕ࣗಈతʹೖͬͯΔɻԿ͜Εअຐ͍ɻ w Α͘Α͘ΈΔͱɺ஌Βͳ͍λάͱදݱ͕ɻ w ͱΓ͋͑ͣXJEUIΛ֎ͯ͋͛͠Δͱ͏·͘ಈ͍ͨΑ

    ஍ཕTIPSUDPEF͕ͳ͔ͥ͋Δ
  32. ஍ཕQSPpMFͷৄࡉ͕ͳ͔ͥऔಘͰ͖ͳ͍

  33. w هࣄͷ"1*࢓༷͚ͩͰ͸ͳ͘ɺ VTFSͷ"1*ΛΈ͚ͨͲऔಘͰ ͖͵ w (SBWBUBSͱࣗಈ࿈ܞ͞Εͯͨ ͷͰɺͪ͜Βͷ"1*Λୟ͘ w υΩϡϝϯτʹॻ͍͍ͯͯ΄ ͔ͬͨ͠

    ஍ཕQSPpMFͷৄࡉ͕ͳ͔ͥऔಘͰ͖ͳ͍
  34. w Α͔ͬͨ w શੈք͔ΒૂΘΕΔ8PSE1SFTTΛࣗ෼Ͱ؅ཧ͠ͳ͍҆৺ײ w "1*ͷΞΫηεΛઃఆͰ͖ΔͷͰLFZྲྀग़ͯ͠΋େৎ෉ʢͩΊʣ w ؅ཧը໘͕ϞμϯͰΘ͔Γ΍͍͔͢Βɺ*5͕ۤखͳࣥචऀʹ΋ґ པͰ͖ΔʢࣥචऀͲΜͲΜ૿͍͑ͯ·͢ʣ ஍ཕ͋Δ͚Ͳɺ΍ͬͯΑ͔ͬͨʁ

  35. ஍ཕ͋Δ͚Ͳɺ΍ͬͯΑ͔ͬͨʁ ஍ཕ͸େମ౿Έൈ͍͔ͨΒ ҆৺͍͍ͯ͠Αʂ

  36. w IUUQQQQQKQ w ߋ৽͢Δهࣄ͸͢΂ͯ8PSE1SFTTDPN͔Β"1*औಘ w 4&0ʹͩ͜ΘΔͳΒɺQSFSFOEFSJOHͱ͍͏ख΋͋ΔΑ Ԡ༻Ͱɺ੩త)5.-ͷҰ෦ʹDPNΛ࢖ͬͯΈͨ

  37. w ੩తαΠτͳΒɺ"844΍ɺ443ͯ͘͠ΕΔߴػೳϗε ςΟϯάαʔϏε/FUMJGZͳͲͰ҆͘Ͱ؆୯ʹઃஔͰ͖Δ w ຊ౰ʹPSH͕͍͍ʁސ٬ͷͨΊʹͳͬͯΔʁ w Կ͕ඞཁ͔ɺΛ੔ཧͨ࣌͠ʹɺΑΓଟ͘ͷબ୒ࢶΛ΋ͭͨ ΊʹɺXPSEQSFTTDPN͞ΘͬͯΈ·ͤΜ͔ʁ ݁࿦

  38. ೥͋ͨΓ  *&஀ੜɻ$44ͷීٴ͕͸͡·Δɻ  )5.-$44͕࢖͑ͨΒ͓ۚʹͳΔ ʮίʔμʔʯͷΦγΰτ ೥͋ͨΓ  8PSE1SFTT͕ߏஙͰ͖ͨΒ͓ۚʹͳ ΔΦγΰτ

    ೥͋ͨΓ  ϥϯαʔζɺαʔϏε։࢝  8PSE1SFTTϒʔϜ౸དྷɻ ೥͋ͨΓ  શ8FCαΠτ͸44-Խ͠Α͏
  39. ੩త8FCαΠτ
 )5.-ϖʔδ͕Μ͹ͬͯྔ࢈ʂ ʮࠓʯΛݟͭΊΑ͏ αʔόαΠυݴޠͰϑϩϯτΤϯυΛॻ ͘ੈք͔Βͷղ์
 )5.-ͰΞϓϦͭ͘ΕΔ࣌୅
 ಈత8FCαΠτ
 $.4ͳͲ࢖ͬͯϖʔδΛಈతʹੜ੒

  40. ͪΌΜͱ8PSE1SFTT͢ΔͷͰ͸ͳ͘ ͪΌΜͱ8FCΛ͠Α͏ɻ

  41. None