Google Assistant 앱으로 위치 정보 얻기
위치 정보를 비롯한 사용자의 정보를 얻을 수 있습니다.
거친 흐름
크게 나누면 이런 느낌입니다.
1. fulfillment 로 허가를 요구하는 처리를 이동한다
허가를 요구하는 처리는 npm 패키지의 actions-on-google
로 정의되고 있는 Permmision
클래스를 이용합니다.Permission
클래스는 응답의 일종으로 이하와 같이 기술합니다.
import { Permission } from 'actions-on-google'
app.intent('TestIntent', conv => {
const context = '「位置情報を使ってもいいですか」の前に喋ってほしい内容'
const permission = ['DEVICE_PRECISE_LOCATION']
conv.ask(new Permission({ context, permission }))
})
위의 코드를 이동하면 TestIntent
에 들어갔을 경우에 위치 정보를 취득해 좋은지 유저에게 질문하게 됩니다.
위치 정보 이외의 허가를 요구하고 싶은 경우는 이쪽을 봐 주세요. 위치 정보 외에도 사용자 이름 등이 몇 가지 있습니다.
htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m/아 c치온 s/레후오렌세/레 st/샤레 d. 타이페스/페르미시온
2. 허가를 요구한 결과를 Intent에서 받는다
사용자에게 허가를 요구한 후에는 actions_intent_PERMISSION
라는 이벤트가 발화하므로, 그것을 Dialogflow 로 잡습니다.
새로운 인텐트를 만들어 아래 그림과 같이 설정합시다.
허가를 요구한 정보는 fulfillment 로부터 액세스 하므로, 인텐트의 하단에 있는 fulfillment 의 설정을 Enable 로 하는 것을 잊지 말고.
3. 취득한 정보를 자유롭게 고뇨고
2로 표시된 이미지와 동일한 인텐트 이름을 지정하면 아래 코드를 사용하여 위치 정보에 액세스할 수 있습니다.
app.intent('PermissionConfirm', (conv, params, confirmationGranted) => {
if (!confirmationGranted) { // ユーザーが承認したかどうか
conv.close('位置情報が取得できませんでした')
}
console.log(conv.device.location) // 位置情報が入っているオブジェクト
conv.close('位置情報が取得できました')
})
이번 허가를 요구한 DEVICE_PRECISE_LOCATION
의 경우는 conv.device.location
안에 정보가 들어가 있습니다만,
다른 권한의 경우는 conv.user
등 다른 장소에 정보가 들어 있습니다.
아래 페이지에 요청에 포함된 정보가 기재되어 있으므로 허가를 요청한 정보에 따라 확인하시기 바랍니다.
ぇぺぺrs. 오, ぇ. 코 m/아 c치온 s/레후오렌세/레 st/샤레 d. Type s / Ap Rekue St
주의점
한 번 들었던 권한에서도 매번 허가를 요구해야 합니다.
이름 등 한 번 얻은 정보를 사용자별로 기억해 두고 싶은 경우에는 다음 두 가지를 수행해야 합니다.
import { Permission } from 'actions-on-google'
app.intent('TestIntent', conv => {
const context = '「位置情報を使ってもいいですか」の前に喋ってほしい内容'
const permission = ['DEVICE_PRECISE_LOCATION']
conv.ask(new Permission({ context, permission }))
})
사용자에게 허가를 요구한 후에는
actions_intent_PERMISSION
라는 이벤트가 발화하므로, 그것을 Dialogflow 로 잡습니다.새로운 인텐트를 만들어 아래 그림과 같이 설정합시다.
허가를 요구한 정보는 fulfillment 로부터 액세스 하므로, 인텐트의 하단에 있는 fulfillment 의 설정을 Enable 로 하는 것을 잊지 말고.
3. 취득한 정보를 자유롭게 고뇨고
2로 표시된 이미지와 동일한 인텐트 이름을 지정하면 아래 코드를 사용하여 위치 정보에 액세스할 수 있습니다.
app.intent('PermissionConfirm', (conv, params, confirmationGranted) => {
if (!confirmationGranted) { // ユーザーが承認したかどうか
conv.close('位置情報が取得できませんでした')
}
console.log(conv.device.location) // 位置情報が入っているオブジェクト
conv.close('位置情報が取得できました')
})
이번 허가를 요구한 DEVICE_PRECISE_LOCATION
의 경우는 conv.device.location
안에 정보가 들어가 있습니다만,
다른 권한의 경우는 conv.user
등 다른 장소에 정보가 들어 있습니다.
아래 페이지에 요청에 포함된 정보가 기재되어 있으므로 허가를 요청한 정보에 따라 확인하시기 바랍니다.
ぇぺぺrs. 오, ぇ. 코 m/아 c치온 s/레후오렌세/레 st/샤레 d. Type s / Ap Rekue St
주의점
한 번 들었던 권한에서도 매번 허가를 요구해야 합니다.
이름 등 한 번 얻은 정보를 사용자별로 기억해 두고 싶은 경우에는 다음 두 가지를 수행해야 합니다.
app.intent('PermissionConfirm', (conv, params, confirmationGranted) => {
if (!confirmationGranted) { // ユーザーが承認したかどうか
conv.close('位置情報が取得できませんでした')
}
console.log(conv.device.location) // 位置情報が入っているオブジェクト
conv.close('位置情報が取得できました')
})
한 번 들었던 권한에서도 매번 허가를 요구해야 합니다.
이름 등 한 번 얻은 정보를 사용자별로 기억해 두고 싶은 경우에는 다음 두 가지를 수행해야 합니다.
Reference
이 문제에 관하여(Google Assistant 앱으로 위치 정보 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sesta/items/944dd8802e12e4c6f65a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)