2014-02-03 3 views
1

Может ли кто-то определить, что не так? URL-адрес обратного вызова является действительным URL-адресом ssl. Также как мы узнаем, есть ли у самой службы google проблемы? Я еще не вижу сообщений в моем обратном вызове на моих журналах веб-сервера.Google Glass - Не получать уведомления о подписке -

Кажется, что я не получаю уведомления.

 StoredCredentialsDBContext db = new StoredCredentialsDBContext(); 

     TimelineItem item = new TimelineItem() 
     { 
      Creator=new Contact(){DisplayName="DLN Reply Card",Id="TESTREPLYCARD" }, 
      Title = Test Number", 
      Text = "Say Test Number", 
      Notification = new NotificationConfig() { Level = "DEFAULT" } 

     }; 

     Google.Apis.Mirror.v1.Data.MenuItem menuItem=new Google.Apis.Mirror.v1.Data.MenuItem(); 
     menuItem.Action="REPLY"; 

     item.MenuItems = new List<Google.Apis.Mirror.v1.Data.MenuItem>(); 
     item.MenuItems.Add(menuItem); 

     foreach (StoredCredentials creds in db.StoredCredentialSet) 
     { 
      AuthorizationState state = new AuthorizationState() 
      { 
       AccessToken = creds.AccessToken, 
       RefreshToken = creds.RefreshToken 
      }; 
      MirrorService service = new MirrorService(new BaseClientService.Initializer() 
      { 
       Authenticator = Utils.GetAuthenticatorFromState(state) 
      }); 
      item.IsPinned = true; 
      Subscription subscription = new Subscription(); 
      subscription.Collection = "timeline"; 
      subscription.VerifyToken = "XXXXX"; 
      subscription.UserToken = creds.UserId; 
      subscription.Operation = new List<String>(); 
      subscription.Operation.Add("INSERT"); 
      subscription.Operation.Add("UPDATE"); 
      subscription.CallbackUrl = "https://changedthename.com/GG/Notify"; 

      Subscription t=service.Subscriptions.Insert(subscription).Fetch(); 

      TimelineItem i=service.Timeline.Insert(item).Fetch(); 

      SubscriptionsListResponse r= service.Subscriptions.List().Fetch(); 


     } 

Выход выполнения Fetch(), который является подписка на объект (я просто скрыл имя домена):

?t 
{Google.Apis.Mirror.v1.Data.Subscription} 
    CallbackUrl: "https://changedname.com/GG/Notify" 
    Collection: "timeline" 
    ETag: null 
    Id: "timeline" 
    Kind: "mirror#subscription" 
    Notification: null 
    Operation: Count = 2 
    Updated: "2014-02-06T16:59:25.642Z" 
    UserToken: "XXXXXXXXXX" 
    VerifyToken: "XXXXX" 

Предмет я использовал:

?i 
{Google.Apis.Mirror.v1.Data.TimelineItem} 
    Attachments: null 
    BundleId: null 
    CanonicalUrl: null 
    Created: "2014-02-06T16:59:32.729Z" 
    Creator: {Google.Apis.Mirror.v1.Data.Contact} 
    DisplayTime: null 
    ETag: "1391705972729" 
    Html: null 
    HtmlPages: null 
    Id: "73b75493-3371-4b2c-856d-df8674b54ede" 
    InReplyTo: null 
    IsBundleCover: null 
    IsDeleted: null 
    IsPinned: false 
    Kind: "mirror#timelineItem" 
    Location: null 
    MenuItems: Count = 1 
    Notification: {Google.Apis.Mirror.v1.Data.NotificationConfig} 
    PinScore: null 
    Recipients: null 
    SelfLink: "https://www.googleapis.com/mirror/v1/timeline/73b75493-3371-4b2c-856d-df8674b54ede" 
    SourceItemId: null 
    SpeakableText: null 
    Text: "Say Test Number" 
    Title: "Test Number" 
    Updated: "2014-02-06T16:59:32.729Z" 


?r 
{Google.Apis.Mirror.v1.Data.SubscriptionsListResponse} 
    ETag: null 
    Items: Count = 1 
    Kind: "mirror#subscriptionsList" 

Мой тест полезной нагрузки для моего URL-адрес обратного вызова с использованием SOapui

Post req со следующей полезной нагрузкой

{ 
    "collection": "timeline", 
    "itemId": "d45fcc3a-4346-453a-8783-88667a002387", 
    "operation": "UPDATE", 
    "userToken": "XXXXXXX", 
    "verifyToken": "XXXXX", 
    "userActions": [ 
    { 
     "type": "<TYPE>", 
     "payload": "<PAYLOAD>" 
    } 
    ] 
} 

200 ОК ответ назад от SoapUI

HTTP/1.1 200 OK 
Cache-Control: private 
Server: Microsoft-IIS/7.5 
X-AspNetMvc-Version: 3.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Tue, 04 Feb 2014 17:48:47 GMT 
Content-Length: 0 

ответ

1

Делаю пару предположений:

  1. Вы видите карты, размещенные на свой стакан.

  2. Вы используете .NET

Навскидку, я не знаю ни одного способа, чтобы убедиться, что служба Mirror работает правильно - но каждый раз, когда я заподозрил проблемы с ним, это оказалось моим служением. Несколько вещей, чтобы попробовать:

  1. Убедитесь, что ваш обратный вызов URL на самом деле работает, принимает команды POST, и отвечает HTTP кодом 200. Вы правильно с помощью HTTPS, но убедитесь, что вы можете получить на сайте с помощью завиток или wget с помощью операции POST, а не только операции GET. Проверьте его на машине вне домена, на котором вы находитесь, чтобы убедиться, что имя хоста правильно проверено и что вы не блокируетесь брандмауэрами.

  2. Возможно, вы захотите сделать подписку перед тем, как добавить элемент временной шкалы. Лучшей практикой является выпуск подписки один раз, когда человек впервые войдет в систему. Я не думаю, что это так, но я вижу, что это возможно что по какой-либо причине подписка заканчивается неправильно.

  3. Проверьте, правильно ли введен элемент и подписка на сервере - проверьте, что возвращается обеими командами, чтобы убедиться, что они верны или выдают службу.Subscriptions.List(). Fetch() и проверьте Результаты.

Update:. Исходя из того, что вы в курсе, как результаты Subscription.Insert() Fetch(), что-то кажется странным. ETag и Id не должны быть NOT. Что-то кажется неправильным о попытке вставки подписки.

Возможно, вы захотите попробовать Subscriptions.List(). Fetch() и посмотреть, действительно ли зарегистрированы какие-либо подписки.

Update 2: Я бы все-таки предлагаю вам сделать один или оба из следующих действий:

  1. Заменить подписки код с кодом, представленным в примере .NET в https://developers.google.com/glass/v1/reference/subscriptions/insert#examples и назвать его. Я не знаю достаточно о .NET, но может быть причина, по которой ваш код вызывает проблемы, так как кажется, что результат вызова Fetch() не является допустимой подпиской.

  2. Внесите метод в примере .NET в https://developers.google.com/glass/v1/reference/subscriptions/list#examples и вызовите его после создания. Если подписка не указана, это означает, что вы по какой-то причине не создаете ее.

+0

Да, я могу видеть карточку ответа, и я использую .net. Вы видите что-то не так в самом коде? Я могу ответить, и он говорит, что карта отправлена. Впоследствии я даже не вижу запроса в журналах веб-сервера вообще для обратного вызова. – user3266177

+0

Ничего не вышло из-за проблемы с кодом. Вы попробовали какие-то три предложенные мной вещи? – Prisoner

+0

«Заключенный» Спасибо за продолжение. Вот где я со всем этим. Я склонен думать что-то с Google зеркальным сервисом, не способным доверять Go Daddy G2 ssl cert (я мог ошибаться) Вот что я собираюсь « – user3266177

Смежные вопросы