Что должно быть написано в файле обратного вызова Superfeedr?

126
10

Мне нужно создать RSS-канал и получить заголовки и URL-адреса сообщений и так далее. Я решил использовать Superfeedr для этого. Поэтому в этой ситуации я являюсь подписчиком в Superfeedr. Для получения данных есть обратный вызов (адрес URL-адреса), но я не знаю, что должно быть записано в файле обратного вызова. Я исследовал сеть, например, код, но я ничего не нашел о примере кода. BTW, я хочу сделать этот процесс на PHP. Поэтому, если вы знаете, что мне нужно написать в этот файл, прокомментируйте.

спросил(а) 2021-01-19T19:38:37+03:00 6 месяцев, 1 неделя назад
1
Решение
77

Джон, я думаю, ты понял... это хорошо. Теперь, что писать на вашем PHP: этот URL-адрес обратного вызова (ваш PHP файл) будет вызываться в двух разных случаях:

для подтверждения вашего намерения (подтвердить, что вы хотите подписаться) уведомлять вас о новом контенте.

Я не человек PHP, но я отпишу алгоритм для вас

Чтобы различать эти два, вам просто нужно посмотреть тип запроса. Если это запрос GET, то это проверка намерения, и если это запрос POST, то это уведомление о новом контенте.

Если это проверка содержимого, вам просто нужно отбросить hub.challenge, предоставленный как параметр GET (я считаю, что echo $_GET['hub.challenge']; должен работать). Вы также должны убедиться, что вы действительно хотите подписку, но что логика вашего приложения и я этого не знаю (большинство людей просто ищут $_GET['hub.topic'] в своей базе данных, и если он там, эхо вызов. Если нет, повторите что-то еще.

Если это уведомление о новом контенте, оно немного сложнее. Вы должны получить доступ к BODY HTTP-запроса (опять же, не знаете, как это работает PHP, но я уверен, что кто-то может помочь), затем проанализируйте его, чтобы извлечь заголовок и URL-адреса, и обрабатывайте их так, как вы хотели бы (большинство люди сохранят это в своих базах данных).

Надеюсь, это поможет!

ответил(а) 2021-01-19T19:38:37+03:00 6 месяцев, 1 неделя назад
45

Я использую этот код в php. Надеюсь, это поможет кому-то


<?php
if(isset($_Get["hub_challenge"])){
echo $_Get["hub_challenge"];
return;
}

ответил(а) 2021-01-19T19:38:37+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема