2

カスタム メニュー項目を含むタイムライン カードを作成しました。ユーザーがそのメニュー項目を選択したときにコールバックを取得したいと思います。

// 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.");
}
したがって、私が知る限り、サブスクリプションは問題なく作成されます。しかし、カードを操作した後、コールバックがありません。私は何が欠けていますか?

私が試したこと:

  1. サブスクリプション obj、タイムライン カード、および menuItem に ID を設定する
  2. カード作成後ではなく、作成前に購読する
  3. サブスクリプション オブジェクトの UserToken として userId を追加する
  4. コールバック 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"
  }
 ]
}
4

3 に答える 3

0

まとめて「操作」なしで試しましたか。

var subscription = new Subscription() { Collection = "timeline", CallbackUrl = " https://mypubliclyavailableserver.com/notify " }

オプションですhttps://developers.google.com/glass/v1/reference/subscriptions/insert

于 2013-10-29T15:37:38.197 に答える
0

私はこのテーマの専門家ではありません。しかし、同じトピックを検索すると、このhttps://developers.google.com/glass/subscription-proxyが見つかりました。これによれば、転送 URL は必要ありませんか? あなたの例では、コールバック URL の形式が正しくないと思いますか?

于 2013-10-29T14:49:02.003 に答える
0

コールバック URL の SSL 証明書に問題があることがわかりましたhttps://mypubliclyavailableserver.com/notify

hackst.com から Web サービスにアクセスしようとしたときに機能しました。Google が表示していた「SSL/TLS セキュア チャネルの信頼関係を確立できませんでした」というエラーを無視したようです。

Google がエラーを送信できる場所がないため、自分に電話がかかってきたのかどうかわかりませんでした。サブスクリプション プロセス中に、コールバック URL の証明書が有効でないように見えた場合、エラーが返される可能性がありますか?

于 2013-10-30T16:06:45.837 に答える