如何从 Google 眼镜获取已选择自定义菜单项的通知
本文关键字:自定义 选择 菜单项 通知 获取 Google 眼镜 | 更新日期: 2023-09-27 18:36:53
我创建了一个带有自定义菜单项的时间线卡。我想在用户选择该菜单项时获得回调。
// Create a menu item for the card
var mnuActivate = new MenuItem() {
Action = "CUSTOM",
RemoveWhenSelected = new bool?(true),
Id = ACCEPT_ID,
Values = new List<MenuValue>() {
new MenuValue() {
State="DEFAULT",
DisplayName="Activate",
},
new MenuValue() {
State="PENDING",
DisplayName="Activating..."
},
new MenuValue() {
State="CONFIRMED",
DisplayName="Activated"
}
}
}
// Create a new card for the user's timeline
var item = new TimelineItem() {
Html = html,
Notification = new NotificationConfig() { Level = "DEFAULT" },
MenuItems = new List<MenuItem>() { mnuActivate }
};
var card = this._service.Timeline.Insert(item).Fetch();
然后,我订阅所有时间线事件并提供https回调URL
// Create a new subscription
var subscription = new Subscription()
{
Collection = "timeline",
Operation = new List(),
CallbackUrl = "https://mypubliclyavailableserver.com/notify"
};
this._service.Subscriptions.Insert(subscription).Fetch();
// Retrieve a list of subscriptions to make sure it is there.
var mySubcriptions = this._service.Subscriptions.List().Fetch();
if (mySubcriptions != null && mySubcriptions.Items != null && mySubcriptions.Items.Count == 1)
{
Console.WriteLine("Subscription created successfully.");
}
因此,据我所知,订阅的创建没有任何问题。但是在与卡交互后,我从未收到回电。我错过了什么?我尝试过的事情:
- 在订阅对象、时间线卡和菜单项上填充 ID
- 在创建卡之前而不是之后订阅
- 将用户 ID 添加为订阅对象上的用户令牌
- 直接调用我的回调 URL 以确保它正在侦听
来自 GET/mirror/v1/subscriptions 的 JSON 响应:
{
"kind": "mirror#subscriptionsList",
"items": [
{
"kind": "mirror#subscription",
"id": "timeline",
"updated": "2013-10-28T15:19:19.404Z",
"collection": "timeline",
"callbackUrl": "https://mypubliclyavailableserver.com/notify"
}
]
}
我不是这方面的专家。但是搜索相同的主题,我发现了这个 https://developers.google.com/glass/subscription-proxy,据此,你不需要转发网址吗?我认为您的示例中回调 url 格式不正确?
您是否在没有"操作"的情况下尝试过。
var 订阅 = 新订阅() { 集合 ="时间线", 回调网址 = "https://mypubliclyavailableserver.com/notify" }
这是一个可选 https://developers.google.com/glass/v1/reference/subscriptions/insert
事实证明,
我的回调 URL https://mypubliclyavailableserver.com/notify
的 SSL 证书有问题
当我尝试从 hackst.com 访问我的网络服务时,它起作用了。我猜他们忽略了谷歌看到的"无法为SSL/TLS安全通道建立信任关系"错误。
谷歌没有可以发送错误的位置,所以我永远不知道它是否在打电话给我。也许如果在订阅过程中,如果回调 URL 的证书看起来无效,可能会返回错误?