谷歌眼镜 - 不receving订阅通知 - (Google Glass - Not recevin

2019-10-19 07:14发布

有人能找出什么是错的? 回调URL是一个有效的SSL URL。 此外,我们如何知道如果谷歌服务本身有问题? 我还没有看到在所有对我的Web服务器日志职位,以我的回调URL ...

我似乎没有被收到通知了。

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


        }

执行取(),它是订阅对象的输出(I只是藏域名):

 ?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"

我的测试有效载荷使用SOAPUI我的回调URL

帖子REQ有以下有效载荷

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

200 OK响应从后面的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

Answer 1:

我做了几个假设:

  1. 你看到张贴到您的玻璃卡。

  2. 您正在使用.NET

随口说说,我不知道的任何方式,以确保镜像服务工作正常 - 但每次我怀疑有问题,它的时候,它已经被证明是我的服务。 有几件事情尝试:

  1. 确保您的回调URL实际工作,接受POST命令,并与你正确使用HTTPS HTTP代码200响应,但要确保你可以使用卷曲或wget的一个POST操作,而不仅仅是一个GET操作的站点。 从一台机器测试你的域之外,以确保主机名正在抬头正确,你没有被拦截的防火墙。

  2. 您可能需要您添加时间轴项目之前做的认购 - 最好的做法是发行认购一旦当人首次登录,我不认为这是它,但认购结束了,我可以把它看作是可能的。不正确应用的某些原因。

  3. 测试以确保该项目,并订阅服务器上都输入正确 - 检查什么是这两个命令返回,以确保它们是正确的或发出service.Subscriptions.List()获取()和检查结果。

更新 :根据您所张贴什么作为Subscription.Insert()的结果取(),事情似乎很奇怪那里。 的eTag和Id当然不应该是空的。 有些东西似乎不正确关于关于认购插入的企图。

你可能想尝试Subscriptions.List()。获取(),看看是否有实际注册任何订阅。

更新2:我还是会建议你做一个或两个以下内容:

  1. 与在.NET提供的示例代码替换您的申购代码https://developers.google.com/glass/v1/reference/subscriptions/insert#examples并调用它。 我不知道有足够的了解.NET,但也有可能是你的代码是造成问题的原因,因为它似乎是你取()调用的结果不是一个有效的订阅。

  2. 实现在.NET示例方法在https://developers.google.com/glass/v1/reference/subscriptions/list#examples并调用它你在创建后。 如果没有订阅列出,这是进一步表明你是不是出于某种原因创建它。



文章来源: Google Glass - Not receving subscription notifications -