askForPermission如何工作?

时间:2018-01-02 18:08:04

标签: actions-on-google

我想第二次访问我的应用时,用他的名字问候用户。为此,我已经实现了帐户链接,现在我想获取他的displayName,并且我已经阅读了我需要请求他获得访问此类信息的权限,所以我按照以下代码进行了操作:

welcome(app){
    let welcomePhrase = "";

    console.log('UserId: ' + app.getUser().userId);

    if (app.isPermissionGranted()) {
        console.log('--------------- Permission granted ---------------');
        const displayName = app.getUserName().displayName;
        welcomePhrase = "Welcome back $1!".replace("$1",displayName);
    }
    else{
        console.log('--------------- Permission denied ---------------');
        this.requestPermission(app);
        welcomePhrase = "Welcome";
    }
    app.ask(welcomePhrase);
}

requestPermission (app) {
    app.askForPermission('Can I keep one information from you?', app.SupportedPermissions.NAME);
}

从我的默认欢迎意图调用欢迎方法,我可以看到应用程序要求获得权限:

enter image description here (是的,它在PT-BR中)

我没有得到的是我作为用户应该回答的问题,因为回复“sim”(是),“sim,vocêpode”(是的,你可以)或任何类似的东西都会被我的默认回退所回答。 / p>

1 个答案:

答案 0 :(得分:2)

主要想法是你必须请求许可,Google会向你询问用户,你收到了回复Dialogflow的回复。

Wassim Chegham写了一篇好文章:https://medium.com/google-developer-experts/handling-permissions-with-dialogflow-and-actions-on-google-b08c8f228c00

此处有更多文档: https://developers.google.com/actions/assistant/helpers