1

Ich brauche Google Push-Benachrichtigungslogik zu reparieren Kanäle. Ich weiß, dass Google Header-Feld X-Goog-Channel-Expiration bietet. Eine der Möglichkeiten, den Kanal zu reparieren, besteht darin, den Ablauf der Prozedur date-time zu überwachen und den Handler nach Ereignis aufzurufen. Ich bin in anderer Weise interessant Lösung ...Google Push-Benachrichtigungen-Kanal ist abgelaufen

Kann ich eine Nachricht über Google Push-Benachrichtigungen Kanalablauf erhalten? Welches Feld (Wert) lässt mich wissen, dass der Kanal abgelaufen ist?

Antwort

0

auf den documentation Basierend:

Derzeit gibt es keine automatische Möglichkeit, einen Benachrichtigungskanal zu erneuern. Wenn ein Kanal kurz vor seinem Ablauf steht, müssen Sie einen neuen erstellen, indem Sie die Methode watch aufrufen. Wie immer müssen Sie für die Eigenschaft des neuen Kanals einen eindeutigen Wert für die id Eigenschaft verwenden. Beachten Sie, dass es wahrscheinlich eine "Überlappung" -Zeitspanne gibt, wenn die zwei Benachrichtigungskanäle für dieselbe Ressource aktiv sind.

X-Goog-Channel-Expiration können im Kopfteil der Benachrichtigung (manchmal vorhanden) gefunden werden.

POST https://sampleurl.com/notifications // Your receiving URL. 
Content-Type: application/json; utf-8 
Content-Length: 0 
X-Goog-Channel-ID: 4ba78bf0-6a47-11e2-bcfd-0800200c9a66 
X-Goog-Channel-Token: 398348u3tu83ut8uu38 
X-Goog-Channel-Expiration: Tue, 19 Nov 2013 01:13:52 GMT 
X-Goog-Resource-ID: ret08u3rv24htgh289g 
X-Goog-Resource-URI: https://www.googleapis.com/calendar/v3/calendars/[email protected]/events 
X-Goog-Resource-State: exists 
X-Goog-Message-Number: 10 

Ich habe einen Zusammenhang SO post gefunden, dass Sie den Ablauf bei der Anforderung eine Uhr Verfahren einstellen. Hier ist der Code:

$service = new Google_Service_Calendar($client); 
$channel = new Google_Service_Calendar_Channel($service); 
$channel->setId($uniqueID); 
$channel->setType('web_hook'); 
$channel->setAddress('https://sample.net/notificationCallBack.php'); 

$timetoExpire = time()+3600000; 
$optParams = array('ttl' => $timetoExpire); 
$channel->setParams($optParams); 

$watchEvent = $service->events->watch($calendarID, $channel); 

Jetzt, wo Sie das Ablaufdatum festgelegt haben, können Sie nun den Kopfteil überprüfen und X-Goog-Channel-Expiration sehen.

Die Verfallszeit des Kanals ist, falls vorhanden, als Unix-Zeitstempel (in ms) in den von der Überwachungsmethode zurückgegebenen Informationen enthalten.

Hoffe das hilft.

Verwandte Themen