php - para - notificaciones google calendar
ConfiguraciĆ³n de Notificaciones de Google Calendar PushUp (0)
Estoy tratando de configurar una Push Notifications para Google Calendar usando PHP y V3 api.
Obtuve el permiso Auth2.0 y soy capaz de crear eventos en google desde mi aplicación. Ahora quiero saber cuándo un usuario realiza algún cambio en el calendario de google (Operaciones CRUD).
Este es mi código:
private $imageService;
public $google_client;
public $google_calendar;
public function __construct()
{
$this->imageService = new ImageService();
$this->google_client = new Google_Client();
$this->google_client->setApplicationName($_ENV[''GOOGLE_APP_NAME'']);
$this->google_client->setDeveloperKey($_ENV[''GOOGLE_API_KEY'']);
$this->google_client->setClientId($_ENV[''CLIENT_ID'']);
$this->google_client->setClientSecret($_ENV[''CLIENT_SECRET'']);
$this->google_client->setAccessType(''offline'');
$this->google_client->setIncludeGrantedScopes(true);
$this->google_client->setScopes(array(''email'', ''profile'', ''https://www.googleapis.com/auth/plus.me'', ''https://www.googleapis.com/auth/calendar''));
$this->google_calendar = new Google_Service_Calendar($this->google_client);
}
public function googleCalendarWatch($uuid){
$channel = new Google_Service_Calendar_Channel($this->google_client);
$channel->setId($uuid);
$channel->setType(''web_hook'');
$channel->setAddress("https://example.com/google/googleNotifications");
$channel->setExpiration("1919995862000");
$this->google_calendar->events->watch(''primary'', $channel);
}
Y esto dio como resultado esto:
Google_Service_Calendar_Channel Object (
[internal_gapi_mappings:protected] => Array ( )
[address] =>
[expiration] => 1426272395000
[id] => aee2b430-34bf-42bc-a597-ada46db42799
[kind] => api#channel
[params] =>
[payload] =>
[resourceId] => 51IKGpOwCJ6EMraQMUc1_04MODk
[resourceUri] => https://www.googleapis.com/calendar/v3/calendars/primary/events?key=AIzaSyBFUvq3OZO6ugAKvz7l8NgLS0V6DUJq8Vc&alt=json
[token] =>
[type] =>
[modelData:protected] => Array ( )
[processed:protected] => Array ( ) )
Hasta ahora no sé por qué la dirección devuelve nulo, tal vez sea ese el problema. Pero no sé cómo arreglarlo.
También leyendo esto: # 26730263 y buscando mi propio código, no hay mucho diferente.
Hice todas las cosas que google dice, registro de dominio, agregar credenciales, clave de API, dominio de inserción permitido y todo ..