iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 21
0
AI & Data

Voice App 開發實務:使用Diagflow+firebase開發Google home App (google assistant action)系列 第 21

actions-on-google 建置 Google Home App #20 Permission: name ; locations

跟開發APP或PWA網站一樣,很多資訊是必需使用者同意才能拿的到,在google home 上,就是使用者的名稱及裝置的位置。

const {
  dialogflow,
  Permission, //拿出 Permission 物件
} = require('actions-on-google');

const app = dialogflow({debug: true});

app.intent('request_name_permission', (conv) => {
  conv.data.requestedPermission = 'NAME';
  if (!conv.user.storage.name) {
    return conv.ask(new Permission({
      context: 'To read your mind', // 要這個 Permission 的原因
      permissions: 'NAME', //這個權限的名稱
    })); //產生Permission物件之後,將這個物件丟給 conv 來問,結果與否會丟 intent "handle_permission" 出來, 記得dialogflow 要有一個intent定義 event 喔!
  }
   conv.close(responses.sayName(conv.user.storage.name));
});


app.intent('handle_permission', (conv, params, permissionGranted) => { // 接intent 回來 這邊處理
  if (!permissionGranted) { //使用者不同
    throw new Error('Permission not granted'); 
  }
   if (requestedPermission === 'NAME') {
    conv.user.storage.name = conv.user.name.display; // cov可以存資料,不用花自已的server storage
    return conv.close(responses.sayName(conv.user.storage.name));
  }
});
  
  

上面示範拿使用者的 NAME Permission.
https://developers.google.com/actions/reference/rest/Shared.Types/Permission

如上文,還有五個權限可拿,DEVICE_COARSE_LOCATION location給的是經緯度。

目前可以給的權限有點少,不過在actions-on-google的 partner 計畫裡,到是有很多特別的權限,如果我有入選的話,再來撰寫分享囉。


上一篇
actions-on-google 建置 Google Home App #19 actions-on-google 撰寫 接 intent 撈api 回傳 google home
下一篇
actions-on-google 建置 Google Home App #21 Media Object : 播放 audio..
系列文
Voice App 開發實務:使用Diagflow+firebase開發Google home App (google assistant action)31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言