カスタム メニュー項目を含むタイムライン カードを作成しました。ユーザーがそのメニュー項目を選択したときにコールバックを取得したいと思います。
// 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.");
}
したがって、私が知る限り、サブスクリプションは問題なく作成されます。しかし、カードを操作した後、コールバックがありません。私は何が欠けていますか?
私が試したこと:
- サブスクリプション obj、タイムライン カード、および menuItem に ID を設定する
- カード作成後ではなく、作成前に購読する
- サブスクリプション オブジェクトの UserToken として userId を追加する
- コールバック 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"
}
]
}