C# 如何从Glass获取已选择自定义菜单项的通知?

C# 如何从Glass获取已选择自定义菜单项的通知?,c#,google-mirror-api,google-glass,C#,Google Mirror Api,Google Glass,我已经创建了一个带有自定义菜单项的时间线卡。我想在用户选择该菜单项时得到一个回调 // 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 Me

我已经创建了一个带有自定义菜单项的时间线卡。我想在用户选择该菜单项时得到一个回调

// 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();

我不是这方面的专家。 但在寻找同一个话题时,我发现,
根据这个,你不需要有转发url吗?我认为回调url格式在您的示例中不正确?

您尝试过没有“操作”吗

var subscription=新订阅() { Collection=“timeline”, CallbackUrl=“” }


这是一个可选的

结果是我的回调URL中的SSL证书出现了问题

当我试图从hackst.com点击我的Web服务时,它起了作用。我猜他们忽略了Google看到的“无法为SSL/TLS安全通道建立信任关系”错误


没有谷歌可以发送错误的位置,所以我根本不知道它是否在给我打电话。如果在订阅过程中,如果回调URL的证书无效,可能会返回错误?

如果您获得订阅,返回的json是什么?嗯,我想知道问题是否可能是
Operation=new List()
而不是
Operation=null
…@Scarygami,我也尝试过。我的理解是,如果您没有具有有效SSL证书的公共可用站点,那么代理对于开发目的非常有用。它允许您重定向到HTTP端点。另外,我尝试使用代理也没有用。你介意发布你的时间线资源回复吗?我想知道时间线通知是否必须设置deliverytime?这里可以看到时间线卡的JSON响应是的,我已经尝试过了。我还尝试指定更新操作
 // 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.");
}
{
 "kind": "mirror#subscriptionsList",
 "items": [
  {
   "kind": "mirror#subscription",
   "id": "timeline",
   "updated": "2013-10-28T15:19:19.404Z",
   "collection": "timeline",
   "callbackUrl": "https://mypubliclyavailableserver.com/notify"
  }
 ]
}