Я пытаюсь настроить WebAPI Tropo с сайтом Drupal, и я подумал, что просто создам обратный вызов hook_menu () для example.com/tropo, а затем использую обратный вызов hook_menu, который я только что создал, чтобы использовать вызов API из Tropo ( который содержит простой массив данных JSON), а затем ответить.
Я могу довольно легко выполнить ответную часть ... собрать данные, drupal_json_output () и выйти (это просто возвращает JSON в основном).
У меня возникли проблемы с получением данных, которые отправляются в обратный вызов меню / tropo ... Я не могу получить доступ к каким-либо данным, используя одно из следующих действий:
$json = file_get_contents("php://input"); // returns NULL
(ниже используется модуль inputtream :)
$json = file_get_contents("drupal://input"); // also returns NULL
Я проверил, что делают некоторые другие модули, и похоже, что они используют hook_init для захвата JSON. Это предпочтительный метод? Я хотел бы иметь возможность сделать это в hook_menu и использовать свой собственный путь и тому подобное ...
В качестве альтернативы, лучше ли мне писать свой собственный PHP-скрипт и запускать за пределами Drupal, просто делая загрузку для базы данных, если мне это нужно?
Ответы:
Оказывается, я получаю данные, но я забыл их расшифровать ...
В моем обратном вызове hook_menu:
Тогда я могу играть столько, сколько я хотел бы с полученным значением $.
Кроме того, модуль inputtream имеет неоценимое значение, так как позволяет мне входить во входной поток более одного раза (если вы попытаетесь использовать
php://input
более одного раза, второй раз и последующие вызовет NULL).Как дополнительное примечание, я только что заметил сегодня новый модуль, который может быть еще более простым способом обработки этого: Контент как JSON
источник
Сервер REST, являющийся частью модуля Services, делает это автоматически для JSON, а также для других форматов: http://drupal.org/project/services
Он также поддерживает Inputstream (Inputstream был создан для обработки как проверки OAuth, так и декодирования служб одного и того же потока).
источник