Мне нужно создать RSS-канал и получить заголовок и URL-адреса сообщений и так далее. Я решил использовать для этого Superfeedr. Так что в данной ситуации я подписчик в Суперфидре. Есть поле обратного вызова (URL подписчика) для получения данных, но я не знаю, что должно быть написано в файле обратного вызова. Я исследовал сеть, например, код, но ничего не нашел о примере кода. Кстати, я хочу сделать этот процесс в PHP. Поэтому, если вы знаете, что мне нужно написать в этот файл, пожалуйста, прокомментируйте.
Что должно быть написано в callback-файле Superfeedr?
Ответы (2)
Джон, я думаю, ты понял... что хорошо. Теперь, что написать в вашем PHP: этот URL-адрес обратного вызова (ваш файл PHP) будет вызываться в 2 разных случаях:
- чтобы подтвердить ваше намерение (подтвердить, что вы хотите подписаться)
- чтобы уведомлять вас о новом контенте.
Я не PHP человек, но я опишу вам алгоритм
Чтобы различать их, вам просто нужно посмотреть на тип запроса. Если это GET-запрос, то это проверка намерения, а если POST-запрос, то это уведомление о новом контенте.
Если это проверка содержимого, вам просто нужно повторить hub.challenge, указанный в качестве параметра GET (я считаю, что echo $_GET['hub.challenge'];
должен работать). Вы также должны убедиться, что вы действительно хотите получить подписку, но что логика вашего приложения и я ее не знаю (большинство людей просто ищут $_GET['hub.topic']
в своей базе данных и, если она там, повторяют вызов. Если нет, повторяют что-то другое.
Если это уведомление о новом контенте, все немного сложнее. Вы должны получить доступ к ТЕЛУ HTTP-запроса (опять же, не уверен, как PHP это делает, но я уверен, что кто-то может помочь), затем проанализировать его, чтобы извлечь заголовок и URL-адреса, и обработать их так, как вы хотите (большинство люди сохранят это в своих базах данных).
Надеюсь, это поможет!
Your callback url didn't echo the challenge. Please make sure it does ("" instead of "8xxxxxxxxxxxxxxxx5ce")
. Зачем ?
- person John; 08.01.2012
if (isset($_GET['hub_challenge'])) { header('HTTP/1.1 204 "No Content"', true, 204); echo $_GET['hub_challenge']; echo $_GET['hub.topic']; exit; }
- person John; 08.01.2012
Я использую этот код в php. Надеюсь, это поможет кому-то
<?php
if(isset($_Get["hub_challenge"])){
echo $_Get["hub_challenge"];
return;
}