1

Googleプッシュ通知ロジックを実装してチャンネルを修復する必要があります。 私はGoogleがヘッダーフィールドX-Goog-Channel-Expirationを提供していることを知っています。チャネルを修復する方法の1つは、クローン表現を追加して有効期限を監視することです。date-timeとイベントごとにハンドラを呼び出します。私は別の方法のソリューションで面白いです...Googleプッシュ通知チャンネルの有効期限が切れています

Googleのプッシュ通知チャンネルの有効期限についてのメッセージを受け取ることはできますか? チャンネルの有効期限が切れていることを知らせるフィールド(値)はどれですか? documentationに基づいて

答えて

0

現在通知チャネルを更新する自動の方法はありません。チャネルの有効期限が近づいている場合は、watchメソッドを呼び出すことで、新しいチャネルを作成する必要があります。いつものように、新しいチャネルのプロパティには、idという固有の値を使用する必要があります。同じリソースの2つの通知チャネルがアクティブである場合、「オーバーラップ」している可能性が高いことに注意してください。

X-Goog-Channel-Expirationは、通知メッセージ(時には本)のヘッダ部に見出すことができます。

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 

私はあなたの時計のメソッドを要求するときに有効期限を設定することができます関連のSO post発見しました。ここでは、コードは次のようになります。

$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); 

今、あなたは有効期限を設定したことを、あなたは今、ヘッダ部分をチェックして、X-Goog-Channel-Expirationを参照してください。

チャネルの有効期限(存在する場合)は、watchメソッドから返された情報にUnixのタイムスタンプ(ミリ秒単位)として含まれます。

これが役に立ちます。

関連する問題