我得到' API Version 2:无法用'INVALID_ARGUMENT'错误解析JSON响应字符串错误:\":找不到字段.\".'简单的语音webhook响应的错误.
- - - - - - 错误 - - - - - - -
"debugInfo": {
"agentToAssistantDebug": {
"agentToAssistantJson": {
"message": "Unexpected apiai response format: Empty speech response",
"apiResponse": {
"id": "31f9c31d-3861-4262-8518-bd1f1e895f86",
"timestamp": "2017-07-29T22:09:23.971Z",
"lang": "en",
"result": {},
"status": {
"code": 200,
"errorType": "success"
},
"sessionId": "1501366152335"
}
}
},
"sharedDebugInfo": [
{
"name": "ResponseValidation",
"subDebugEntry": [
{
"name": "UnparseableJsonResponse",
"debugInfo": "API Version 2: Failed to parse JSON response string with 'INVALID_ARGUMENT' error: \": Cannot …Run Code Online (Sandbox Code Playgroud) Google最近发布了具有Now on Tap的Android Marshmallow,可以扫描应用内容并向用户提供其他信息.
不幸的是,我们的应用程序的信息看起来并不十分相关和谷歌无视我们的内部设置数据onProvideContentAssist()和onProvideAssistData().
这些规格看起来相当高,并且还包含" 可以建议 "和" 附加信息 "等词语,因此Google似乎正式允许自己忽略开发人员提供的数据.
所以我们决定禁用Now on Tap,但似乎并不是非常简单.根据上面提供的文件,我们应该FLAG_SECURE在这种情况下使用.但随后用户无法捕获屏幕截图,Google Now on Tap开始以下面面向用户的消息来指责我们的应用:
结果不可用
此应用已阻止Now on Tap
但似乎Opera在某种程度上轻轻地阻止了Now on Tap的私人标签.它为他们显示了更多app友好的消息:
什么都没有
Opera如何阻止现在点击?
有没有人知道如何阻止Google Assist API(现在点击)而不会对我们的应用程序负责?
android google-now android-6.0-marshmallow google-assist-api
我一直在查看并阅读Google Now on Tap(来自http://developer.android.com/training/articles/assistant.html).
从该文章中发现,Now on Tap基于与Marshmallow捆绑在一起的Google Assist API非常有趣,我们似乎可以开发自己的助手(Google在文章中使用的术语来指代像Now on Tap这样的应用程序)使用API.
然而,提到的文章只有非常简短讨论如何使用辅助API和我找不到任何关于如何使用它,即使花了几天在互联网上搜索之后开发自定义助理的任何其他信息.没有文档也没有例子.
我想知道你们中是否有人有使用Assist API的经验吗?任何帮助赞赏.
谢谢
我已经尝试了我找到的每个简单的组合,但不知道如何做到这一点.我甚至试图模拟家庭长按,但你得到谷歌现在的声音,看着logcat它显示这一点
com.google.android.googlequicksearchbox/com.google.android.apps.gsa.staticplugins.opa.OpaActivity
但不确定这是我正在寻找的或如何复制它.
我想直接从我的 Google Assistant 向 LAN 上的服务器(例如 Node-red 或 Arduino)发出 HTTP 请求。
我想重现这个小部件的行为,但是它在谷歌助手中不起作用。
使用带有 webhooks 的 IFTTT 可以使 IFTTT 网站从他们的服务器上 ping 互联网,而不是从我私人局域网中的手机上 ping。我认为如果我使用带有 webhook 的 api.ai 的 google 操作也会发生同样的情况。例如,Wake On Lan这个应用程序可以 LAN 请求,但它不会像 那样获取链接192.168.0.2:1880/test,它只需要 IP 地址,但它可以与 Google 热词 OK Google 配合使用。
那么如何直接从我的 Google 助理发出 HTTP POST 请求呢?
我开发的应用程序可以回答某些查询(电话号码查询,也可能是其他查询).
Google在Android 6上引入了一项名为"Google Now On Tap"的新功能(AKA"Assist API"),允许用户查询屏幕上显示的内容(通过长按主页按钮或说出什么东西),不需要输入任何东西.
谷歌在这里提供了开发人员教程
我找不到任何代码片段来展示如何为它准备应用程序.
我注意到的只有我可以从Application类扩展,并在其中添加OnProvideAssistDataListener,并注册到它.
但是,它打开了很多关于如何做到这一点的问题.
可悲的是,因为这个话题很新,我几乎找不到任何关于它的内容,所以我想在这里提出问题.
1)这个新功能是否有任何样本或至少更详细的教程?
2)在文档中说:
在大多数情况下,实施辅助功能支持将使助手能够获得所需的信息.这包括提供android:contentDescription属性,为自定义视图填充AccessibilityNodeInfo,确保自定义ViewGroup正确地公开其子项,并遵循"使应用程序可访问"中描述的最佳实践.
为什么以及如何使用应用程序的辅助功能?与公开子视图(或视图)有什么关系?如果应用程序还没有运行,它甚至可能是关于视图的(因为该功能在任何应用程序,任何地方都被激活).
我认为仅当前景应用程序是我的应用程序时才会调用它,但如果是这样,我如何实际提供针对所有应用程序显示的查询,具体取决于输入内容?
3)从Application扩展的类是否应该实现OnProvideAssistDataListener?如果是这样,为什么需要注册呢?如果没有,Google-Now-On-Tap如何使用呢?它不能只打开所有具有这类课程的应用程序,看看它们是否注册...
4)文档有一个我不明白的样本片段:
@Override
public void onProvideAssistContent(AssistContent assistContent) {
super.onProvideAssistContent(assistContent);
String structuredJson = new JSONObject()
.put("@type", "MusicRecording")
.put("@id", "example.comhttps://example.com/music/recording")
.put("name", "Album Title")
.toString();
assistContent.setStructuredData(structuredJson);
}
Run Code Online (Sandbox Code Playgroud)
新功能对每个键有什么作用?是应用程序还是Google-Now-On-Tap?我有什么选择呢?这是我在哪里定义我的应用程序是否可以处理该功能建议我的内容?AssistContent应该是我看到的输入,并决定我的应用程序是否可以处理它或忽略它?
我已经在 Raspberry Pi 3 中配置了 Google Assistant SDK,并且演示应用程序运行良好。有没有办法使用 Python 脚本将“OK Google,示例命令”发送到 Google Assistant SDK?或者它只会接受来自 Mic 的输入?
我打算编写一个微型移动应用程序,它将向我的 Raspberry Pi 谷歌助手应用程序发送命令。
我正在尝试开发主要用于手机上的Google Home和Google Assistant的Google Assistant应用。
是否可以将Google的免提通话功能集成到Assistant App中,以便用户可以在我的应用程序中直接发起电话?
例如。我的应用程序为一些商店提供了一些建议,并会提示用户询问是否要致电商店。
有人知道这是否可能吗?
非常感谢!
google-assist-api actions-on-google google-home google-assistant-sdk
我正在使用Java为Google助手创建一个应用程序,该应用程序将调用外部REST API并根据触发短语返回某些响应。我目前可以使用默认的欢迎意图通过Google模拟器上的操作返回简单的文本回复。但是,当我尝试调用外部REST API并发送回响应时,模拟器返回一条消息,内容为:
“ MalformedResponse:由于语音响应为空,无法将Dialogflow响应解析为AppResponse。”
我正在使用org.springframework.web.client.RestTemplate来自Spring框架的REST服务(https://fitzroi-rest-api-0525.appspot.com/rest/Fitz)进行以下调用来处理结果:(
greeting = restTemplate.getForObject("https://fitzroi-rest-api-0525.appspot.com/rest/{name}", Greeting.class, givenName);这在常规Spring中效果很好专案,但不在Google Intent行动中)
我的测试应用程序的一个训练短语示例是“ Tony正在发送问候语”。从这里,我将“ Tony”提取为@sys.given-nameDialogflow中的一个实体。然后将该名称传递给REST服务进行处理。REST服务是一个MVC应用程序,它在与Google Assistant应用程序不同的Google Cloud项目中运行。
请让我知道这是否是使用Dialogflow fullfillment webhook消费REST服务的好方法。
以下是我的Webhook尝试使用REST服务的示例代码。
@ForIntent("process-greeting")
public ActionResponse greetingProcessor(ActionRequest request) {
LOGGER.info("Trying to process greeting intent");
ResponseBuilder responseBuilder = getResponseBuilder(request);
String givenName = (String) request.getParameter("given-name");
if (givenName != null && !givenName.isEmpty()) {
RestTemplate restTemplate = new RestTemplate();
Greeting greeting = null;
greeting = restTemplate.getForObject("https://fitzroi-rest-api-0525.appspot.com/rest/{name}", Greeting.class, givenName);
// LOGGER.info("Attempting to send back " + greeting.getContent() + " to …Run Code Online (Sandbox Code Playgroud) 近日,谷歌发布了谷歌助手新的“阅读”功能。
我如何用 Python 尝试它?我在控制台中启用了 Google Assistant API并创建了服务帐户凭据。该文档不提供任何 Python 实现。
我想运行一个简单的“Hello world”示例:发送文本并获取 wav 文件。
python google-api python-3.x google-assist-api google-assistant-sdk
android ×5
google-api ×1
google-home ×1
google-now ×1
http ×1
ifttt ×1
java ×1
json ×1
python ×1
python-3.x ×1
rest ×1
spring-mvc ×1