我正在使用Java快速入门应用程序来了解镜像api。我将它部署到aws并且能够成功地与它进行交互。我已更新MirrorClient以将callbackURL设置为通过代理(https://mirrornotifications.Appspot.com/forward?url=http:// {myurl} / notify)进行路由,并且我收到通知但响应始终为空。这是我正在尝试处理的自定义菜单项,所以我想知道我是否遗漏了构建菜单项的基本内容。相关代码如下。
List<MenuValue> menuValues = new ArrayList<MenuValue>();
MenuValue defaultValue = new MenuValue();
defaultValue.setDisplayName("Find");
defaultValue.setState("DEFAULT");
menuValues.add(defaultValue);
MenuItem nearMe = new MenuItem();
nearMe.setId("nearMe");
nearMe.setAction("CUSTOM");
nearMe.setValues(menuValues);
searchNearMeMenuList.add(nearMe);
TimelineItem timelineSearchNearMe = new TimelineItem();
timelineSearchNearMe.setText("Search near me");
timelineSearchNearMe.setIsBundleCover(false);
timelineSearchNearMe.setBundleId("mySearch");
timelineSearchNearMe.setSourceItemId("FIND_NEAR_ME");
timelineSearchNearMe.setMenuItems(searchNearMeMenuList);
timelineSearchNearMe.setNotification(new NotificationConfig().setLevel("DEFAULT"));
是否与我部署在aws而不是app引擎上的事实有关?提前感谢您的帮助。
更新了GET响应。
{
"kind": "mirror#timelineItem",
"id": "9944f290-89b5-46b0-aa7d-2a06623a5d07",
"sourceItemId": "FIND_NEAR_ME",
"bundleId": "mySearch",
"isBundleCover": false,
"selfLink": "https://www.googleapis.com/mirror/v1/timeline/9944f290-89b5-46b0-aa7d-2a06623a5d07",
"created": "2013-08-06T16:01:42.886Z",
"updated": "2013-08-06T16:01:42.886Z",
"etag": "\"ZECOuWdXUAqVdpmYErDm2-91GmY/01TB49uN8ZW2c8MYSuyXCySS-KE\"",
"text": "Search near me",
"speakableText": "This will find stores near you",
"menuItems": [
{
"id": "nearMe",
"action": "CUSTOM",
"values": [
{
"state": "DEFAULT",
"displayName": "Find"
}
]
}
],
"notification": {
"level": "DEFAULT"
}
}
答案 0 :(得分:0)
“空白”通知可能是一个棘手的问题。以下是一些故障排除步骤:
menuItems
中的值。 (已经完成)使用命令行curl
之类的HTTP工具来模拟通知,例如从docs复制的通知。
{
"collection": "timeline",
"itemId": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
"operation": "UPDATE",
"userToken": "harold_penguin",
"userActions": [
{
"type": "CUSTOM",
"payload": "PING"
}
]
}
使用如下命令:
$ curl -X POST -H "Content-type: application/json" -d@payload.json http://{myurl}/notify
答案 1 :(得分:0)
我也有空白通知问题。我发现在读取请求导致request.inputStream已经关闭的问题之前关闭了响应。以此为准
response.setContentType("text/html");
Writer writer = response.getWriter();
writer.append("OK");
writer.close();
在我完全阅读请求通知到String后解决了问题。