2012-03-29 13 views
5

Próbuję użyć protokołu PSHB, aby otrzymywać powiadomienia o moich alertach Google. Używam kodu znalezionego pod numerem here. Jednak nie jest dla mnie jasne, jak wdrożyć wywołanie zwrotne (lub punkt końcowy).Implementacja wywołania subskrybenta subskrypcji Pubsubhub w PHP

Czy ktoś może podać trywialny przykład pokazujący, w jaki sposób mogę uzyskać dostęp do danych, które zostały POSTED do mojego punktu końcowego?

A (lekko zmodyfikowany) fragment kodu google następuje poniżej:

<?php 

// simple example for the PHP pubsubhubbub Subscriber 
// as defined at http://code.google.com/p/pubsubhubbub/ 
// written by Josh Fraser | joshfraser.com | [email protected] 
// Released under Apache License 2.0 

include("subscriber.php"); 

$hub_url = "http://pubsubhubbub.appspot.com"; 
$callback_url = "http://www.example.com/mycallback.php"; // <- how to implement this ? 

[[Edycja]]

zostały dodane niektóre pseudokod poniżej w celu wyjaśnienia pytanie dalej .. .

// Implementation of mycallback.php 
<?php 
    $pubsub_post_vars = $_POST[WHAT_NAME_AM_I_LOOKING_FOR]; //what's the name of the POST var? 
    // How do I get to the 'good stuff? 
    $feed_id = $pubsub_post_vars[SOME_VARIABLE] 
    $feed_title = $pubsub_post_vars[ANOTHER_VARIABLE] 
    $contents = $pubsub_post_vars[YET_ANOTHER_VARIABLE] 
    $author  = $pubsub_post_vars[YET_ANOTHER_VARIABLE_1] 
    $perma_link = $pubsub_post_vars[YET_ANOTHER_VARIABLE_2] 
    $pub_date = $pubsub_post_vars[YET_ANOTHER_VARIABLE_3] 
?> 

Zdaję sobie sprawę, że podejście (powyżej) może być kompletna źle, jak podejrzewam, że jest to dokument RSS/ATOM czyli PO STed. Jednak niektóre kody szkieletowe, takie jak powyższy, powinny wystarczyć do rozpoczęcia pracy, więc mogę wydobyć takie rzeczy, jak identyfikator pliku, tytuł i opublikowana treść ... itd.

+0

czy znalazłeś rozwiązanie? Czy chcesz się ze mną podzielić? Mam również problem z wdrożeniem oddzwonienia. Dziękuję bardzo, twoja pomoc jest bardzo doceniana. – overshadow

Odpowiedz

2

Cóż, sposób wdrożenia go naprawdę zależy na tym, co chcesz osiągnąć za jego pomocą. Ale ogólnie, są 2 rzeczy Twój zwrotna musi obsługiwać:

  • weryfikacji intencji
  • rozpatrywania powiadomień

za weryfikację intencyjnym, Twój zwrotna musi echo hub.challenge parametr, jeśli naprawdę chcesz subskrybować ten konkretny kanał.

Do obsługi powiadomienia, twój oddzwonień prawdopodobnie musi sprawdzić poprawność (podpis), jeśli użyłeś sekretu podczas susbribingu, a później musi przeczytać i zapisać zawartość ciała.

[AKTUALIZACJA] Uwaga: powiadomienie nie będzie zawarte w żadnej zmiennej POST, będzie to samo ciało (dostępne przez $request_body = @file_get_contents('php://input');). POST vars są zazwyczaj przetwarzane przez PHP z ciała. W tym kontekście chcesz uzyskać dostęp do surowego ciała. Będziesz wówczas mógł wyodrębnić wszystkie vary, które przeglądasz, z przesłanego Ci XML (RSS lub Atom).

+0

Cześć, tak, wiem, że powinno być łatwo zrobić - stąd moja frustracja polegająca na tym, że nie jestem w stanie wymyślić, jak to zrobić :). Zobacz moje zaktualizowane pytanie. Dzięki! –

Powiązane problemy