未收到来自镜像api订阅的通知

时间:2014-03-20 16:06:41

标签: php google-mirror-api google-api-php-client

我从谷歌(link)下载了PHP快速入门,并将其置于安全网站上。

订阅时间轴事件时,应调用文件notify.php。但是,这从未发生过。例如,当删除时间轴卡时,我希望调用notify.php,但不是。

我真的不知道如何深入研究这个问题。有人在想吗?

- 编辑 -

关于这个问题的更多信息(昨天是漫长的一天......);)

正在设置订阅,在打印订阅时,我看到重定向网址是正确的:

$subscriptions = $mirror_service->subscriptions->listSubscriptions();
echo '<pre>';
print_r($subscriptions);
echo '</pre>';

结果:

Google_SubscriptionsListResponse Object
(
    [__itemsType:protected] => Google_Subscription
    [__itemsDataType:protected] => array
    [items] => Array
        (
            [0] => Google_Subscription Object
                (
                    [callbackUrl] => https://url/to/notify.php
                    [collection] => timeline
                    [id] => timeline
                    [kind] => mirror#subscription
                    [__notificationType:protected] => Google_Notification
                    [__notificationDataType:protected] => 
                    [notification] => 
                    [operation] => 
                    [updated] => 2014-03-21T09:34:45.391Z
                    [userToken] => 108736261363015154260
                    [verifyToken] => 
                )

        )

    [kind] => mirror#subscriptionsList
)

为了检查是否调用了notify.php,我要创建一个&#34;日志文件&#34;在服务器上的可写文件夹中:

<?php
// all the way on top of notify.php
$file = __DIR__ .'/db/log.txt';

function logfile($txt) {
    global $file;
    $str = is_file($file)? file_get_contents($file) : '';
    file_put_contents($file, $str ."\n". $txt);
}

logfile('--- notify.php is being run ---');

//..

我请求https://url/to/notify.php时会写入日志文件,但是当我希望触发订阅回调时,不会写入该文件。

此外,网址https://url/to/notify.php已添加到Google Developer Console中的重定向URI以及oauth2callback.php

2 个答案:

答案 0 :(得分:1)

好的,我已经修好了..或者实际上,没有错。

我以为我会收到新创建和删除的时间轴项目的通知。相信我在某处读到了这个。 然而,今天一位同事走进了谁拥有一个玻璃设备(该公司唯一的一个)。当我开始玩菜单项时(你不能在快速入门的webapp中使用它们)我可以回复一张卡片并且:实际上已经调用了notify.php!

太糟糕了,快速启动应用程序本身并没有详细记录。但我现在很高兴:)

答案 1 :(得分:0)

您应该检查以确保实际创建订阅并包含您期望的回调URL。

查看mirror-client.php:subscribe_to_notifications()中的index.php和“insertSubscriptions”案例,以验证订阅的网址。

您可能还希望添加此功能(来自https://developers.google.com/glass/v1/reference/subscriptions/list),该功能将列出您的订阅。然后,您可以使用它来确定存储的URL,并验证该URL是否安全有效。

function printSubscriptions($service) {
  try {
    $subscriptions = $service->subscriptions->listSubscriptions();

    foreach ($subscriptions->getItems() as $subscription) {
      print 'Collection: ' . $subscription->getCollection();
      print 'User token: ' . $subscription->getUserToken();
      print 'Verify token: ' . $subscription->getVerifyToken();
      print 'Callback URL: ' . $subscription->getCallbackUrl();

      if ($subscription->getOperation()) {
        print 'Operation:';
        foreach ($subscription->getOperation() as $operation) {
          print '  * ' . $operation;
        }
        print 'Operation: ALL';
      }
    }
  } catch (Exception $e) {
    print 'An error occurred: ' . $e->getMessage();
  }
}