diff --git a/config.php b/config.php index 026060f..59ef614 100755 --- a/config.php +++ b/config.php @@ -18,9 +18,9 @@ // TODO: You must configure these fields for the starter project to function. // Visit https://developers.google.com/glass/getting-started to learn more -$api_client_id = "API_CLIENT_ID"; -$api_client_secret = "API_CLIENT_SECRET"; -$api_simple_key = "API_KEY"; +$api_client_id = "465303650846.apps.googleusercontent.com"; +$api_client_secret = "wZgGkyRosOTHQkPnCB2zvb5L"; +$api_simple_key = "AIzaSyCCbHcqDanbwH5eb0oycQ9niV8P3n0F0qM"; $base_url = "http://localhost/mirror-quickstart-php"; diff --git a/index.php b/index.php index 766949b..8144bb0 100755 --- a/index.php +++ b/index.php @@ -37,7 +37,7 @@ // But first, handle POST data from the form (if there is any) switch ($_POST['operation']) { - case "insertItem": + case 'insertItem': $new_timeline_item = new Google_TimelineItem(); $new_timeline_item->setText($_POST['message']); @@ -54,7 +54,7 @@ $message = "Timeline Item inserted!"; break; - case "insertItemWithAction": + case 'insertItemWithAction': $new_timeline_item = new Google_TimelineItem(); $new_timeline_item->setText("What did you have for lunch?"); @@ -92,7 +92,7 @@ $message = "Inserted a timeline item you can reply to"; break; - case "insertTimelineAllUsers": + case 'insertTimelineAllUsers': $credentials = list_credentials(); if (count($credentials) > 10) { $message = "Found " . count($credentials) . " users. Aborting to save your quota."; @@ -111,19 +111,19 @@ $message = "Sent a cat fact to " . count($credentials) . " users."; } break; - case "insertSubscription": + case 'insertSubscription': $message = subscribeToNotifications($mirror_service, $_POST['subscriptionId'], $_SESSION['userid'], $base_url . "/notify.php"); break; - case "deleteSubscription": + case 'deleteSubscription': $message = $mirror_service->subscriptions->delete($_POST['subscriptionId']); break; - case "insertContact": + case 'insertContact': insertContact($mirror_service, $_POST['id'], $_POST['name'], $base_url . "/static/images/chipotle-tube-640x360.jpg"); $message = "Contact inserted. Enable it on MyGlass."; break; - case "deleteContact": + case 'deleteContact': deleteContact($mirror_service, $_POST['id']); $message = "Contact deleted."; break; diff --git a/notify.php b/notify.php index c9e4197..0be5929 100755 --- a/notify.php +++ b/notify.php @@ -31,7 +31,7 @@ set_time_limit(0); // And one more thing to try: forking the heavy lifting into a new process. Yeah, crazy eh? -if(function_exists('pcntl_fork')) { +if (function_exists('pcntl_fork')) { $pid = pcntl_fork(); if ($pid == -1) { error_log("could not fork!"); @@ -49,7 +49,7 @@ require_once 'google-api-php-client/src/contrib/Google_MirrorService.php'; require_once 'util.php'; -if($_SERVER['REQUEST_METHOD'] != "POST") { +if ($_SERVER['REQUEST_METHOD'] != "POST") { echo "method not supported"; exit(); } @@ -70,26 +70,34 @@ // A glass service for interacting with the Mirror API $mirror_service = new Google_MirrorService($client); -switch($request['collection']) { - case "timeline": - $timeline_item_id = $request['itemId']; +switch ($request['collection']) { + case 'timeline': + // Verify that it's a share + foreach ($request['userActions'] as $i => $user_action) { + if ($user_action['type'] == 'SHARE') { - $timeline_item = new Google_TimelineItem($mirror_service->timeline->get($timeline_item_id)); + $timeline_item_id = $request['itemId']; - $attachments = $timeline_item->getAttachments(); - $attachment = $attachments[0]; + $timeline_item = $mirror_service->timeline->get($timeline_item_id); - $bytes = downloadAttachment($timeline_item_id, $attachment); + foreach($timeline_item->getAttachments() as $j => $attachment) { + $attachment = $mirror_service->timeline->attachments->get($timeline_item_id, $attachment.getId()); + $bytes = downloadAttachment($timeline_item_id, $attachment); + + // Insert a new timeline card, with a copy of that photo attached + $echo_timeline_item = new Google_TimelineItem(); + $echo_timeline_item->setText("Echoing your shared photo"); + $echo_timeline_item->setNotification( + new google_NotificationConfig(array("level"=>"DEFAULT"))); + insertTimelineItem($mirror_service, $echo_timeline_item, "image/jpeg", $bytes); + } + break; + } + } - // Insert a new timeline card, with a copy of that photo attached - $echo_timeline_item = new Google_TimelineItem(); - $echo_timeline_item->setText("Echoing your shared photo"); - $echo_timeline_item->setNotification( - new google_NotificationConfig(array("level"=>"DEFAULT"))); - insertTimelineItem($mirror_service, $echo_timeline_item, "image/jpeg", $bytes); break; - case "locations": - $location = new Google_Location($mirror_service->locations->get("latest")); + case 'locations': + $location = $mirror_service->locations->get("latest"); // Insert a new timeline card, with a copy of that photo attached $loc_timeline_item = new Google_TimelineItem(); $loc_timeline_item->setText("You are at " . $location->getLatitude() . " by " . @@ -98,6 +106,6 @@ insertTimelineItem($mirror_service, $loc_timeline_item, null, null); break; default: - error_log("I don't know how to process this notification:" . $request); + error_log("I don't know how to process this notification: $request"); } diff --git a/util.php b/util.php index eadf508..624629d 100644 --- a/util.php +++ b/util.php @@ -21,30 +21,6 @@ require_once 'google-api-php-client/src/Google_Client.php'; require_once 'google-api-php-client/src/contrib/Google_MirrorService.php'; -// Returns an unauthenticated service -function get_google_api_client() { - global $api_client_id, $api_client_secret, $api_simple_key, $base_url; - // Set your cached access token. Remember to replace $_SESSION with a - // real database or memcached. - session_start(); - - $client = new Google_Client(); - - $client->setApplicationName('Google Mirror API PHP Quick Start'); - - // These are set in config.php - $client->setClientId($api_client_id); - $client->setClientSecret($api_client_secret); - $client->setDeveloperKey($api_simple_key); - $client->setRedirectUri($base_url."/oauth2callback.php"); - - $client->setScopes(array( - 'https://www.googleapis.com/auth/glass.timeline', - 'https://www.googleapis.com/auth/glass.location', - 'https://www.googleapis.com/auth/userinfo.profile')); - - return $client; -} function store_credentials($user_id, $credentials) { $db = init_db();