Upgrade to Pro — share decks privately, control downloads, hide ads and more …

APL使ってみた

Avatar for gaomar gaomar
December 17, 2018

 APL使ってみた

APL(Alexa Presentation Language)使ってみた。
スマートスピーカーを遊びたおす会 vol.4の登壇資料です。

Avatar for gaomar

gaomar

December 17, 2018
Tweet

More Decks by gaomar

Other Decks in Technology

Transcript

  1. λονॲཧ 5PVDI8SBQQFS λονϥούʔ Λ࢖͏ { "type": "TouchWrapper", "onPress": { "type":

    "SendEvent", "arguments": [ "top" ] }, "item": { "type": "AlexaHeader", "headerTitle": "@skillName", "headerAttributionImage": "@skillIcon" } } ɾUZQF͸5PVDI8SBQQFSΛࢦఆ ɾPO1SFTTͰ൓Ԡͤ͞Δ ɾBSHVNFOUTͰ౉͍ͨ͠ύϥϝʔλʔΛࢦఆ ɾJUFN͕൓Ԡ͢Δର৅ IUUQTEFWFMPQFSBNB[PODPNKBEPDTBMFYBQSFTFOUBUJPOMBOHVBHFBQMUPVDIXSBQQFSIUNM
  2. λονॲཧ "4, "MFYB4LJMMT,JU Ͱͷड͚औΓํ // ը໘λονॲཧ const TouchEventHandler = {

    canHandle(handlerInput) { return ((handlerInput.requestEnvelope.request.type === 'Alexa.Presentation.APL.UserEvent' && (handlerInput.requestEnvelope.request.source.handler === 'Press' || handlerInput.requestEnvelope.request.source.handler === 'onPress'))); }, handle(handlerInput) { let choice = handlerInput.requestEnvelope.request.arguments[0]; var speechText = “”; if (choice === 'top') { // λΠτϧ΁໭Δ speechText = “λΠτϧ΁໭ΔΑ”; } else if (choice === 'game_word') { // ΧʔϦϯά༻ޠදࣔ speechText = “ΧʔϦϯά༻ޠը໘΁ߦ͘Α”; } else { // ͦͷଞ speechText = “ͦͷଞͩΑ”; } return handlerInput.responseBuilder .speak(speechText) .getResponse(); } }; ɾUZQF͸"MFYB1SFTFOUBUJPO"1-6TFS&WFOU ɾIBOEMFSʹʮ1SFTTʯ͔ʮPO1SFTTʯ͕ೖΔ ɾBSHVNFOUTͷ഑ྻΛऔಘ
  3. Ϧετॲཧ 4FRVFODF γʔΫΤϯε Λ࢖͏ { "type": "Sequence", "scrollDirection": "horizontal", "data":

    "${listData}", "height": "100%", "width": "100%", "numbered": true, "item": [ { … } ] } ɾUZQF͸4FRVFODFΛࢦఆ ɾTDSPMM%JSFDUJPOͰํ޲Λࢦఆ IPSJ[POUBMԣ޲͖WFSUJDBMॎ޲͖ ɾEBUBͰϦετදࣔ͢ΔݩσʔλΛ౉͢ ɾOVNCFSFE͕USVFͳΒࣗಈ࠾൪͢Δ \PSEJOBM^ʹ࠾൪͞Εͨ஋͕ೖΔ IUUQTEFWFMPQFSBNB[PODPNKBEPDTBMFYBQSFTFOUBUJPOMBOHVBHFBQMTFRVFODFIUNM
  4. "1-ద༻ํ๏ EPDVNFOU෦෼ͱEBUB4PVSDFT෦෼Λ෼͚Δ { “document”: { … }, “dataSouces”: { …

    } } return handlerInput.responseBuilder .speak(speechText) .addDirective({ type : 'Alexa.Presentation.APL.RenderDocument', version: '1.0', document: require('./document/apl_top.json'), datasources: require('./data/apl_top.json') }) .getResponse(); μ΢ϯϩʔυͨ͠KTPOϑΝΠϧ "4,Ͱͷॲཧ BEE%JSFDUJWFʹࢦఆ͢Δ
  5. "1-ҋͷ࿩ EBUBTPVSDFT͸͜͏͠ͳ͍ͱΤϥʔʹͳΔ ʢ-BNCEB͸4VDDFTTͰฦ͖͔ͬͯͨΒ༨ܭϋϚͬͨʜʣ { "listPage": { "listData": [ { "text":

    "1ͭΊ" }, { "text": "2ͭΊ" }, { "text": "3ͭΊ" } ] } } { "listData": [ { "text": "1ͭΊ" }, { "text": "2ͭΊ" }, { "text": "3ͭΊ" } ] } 0,ύλʔϯ /(ύλʔϯ