我从谷歌(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
答案 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();
}
}