В данной статье я покажу, как можно использовать сервис анонимных вопросов Formspring для организации раздела «Вопрос/Ответ» на стороннем ресурсе на PHP.
Formpring API в природе существует (REST-like), но сейчас находится на стадии «беты», и полноценно им пользоваться могут, насколько я понял, лишь избранные. На странице для разработчиков пишут: «The API is currently limited to a select group of users and partners right now». Нужна регистрация, которая не тут же выплёвывает необходимые для работы ключи. Я уже посылал свою заявку какое-то время назад, но ответа так и не получил. Однако, некоторыми методами API можно пользоваться, не проходя аутентификации (банальное получение информации).
- Задавать анонимно вопросы;
- Выводить список ответов.
Вывод списка ответов
- max_id — возвращает записи с id < max_id
- since_id — возвращает записи с id > since_id
- before — То же, что и max_id
Для нашего сервиса ограничимся стандартной выдачей в 20 записей. Тут сложностей нет, поэтому воспользуемся функцией file_get_contents(). Запрос делаем по URL:
Тесты в программе Айрен Вопрос с вводом ответа
beta-api.formspring.me/answered/listВАШ_ЛОГИН
Такой запрос вернёт нам список ответов в формате JSON.
В итоге получим примерно такой код:
$data = json_decode(file_get_contents(‘http://beta-api.formspring.me/answered/list/ВАШ_ЛОГИН’)); foreach ($data->response as $item) < echo ‘ ‘.$item->question.’ (‘.date(‘d.m’, strtotime($item->time)).’ #)
‘.$item->answer.’ ‘; >
Примечание: ещё запись содержит поле asked_by, которое будет не пустым, если вопрос задали не анонимно.
Отправка анонимного вопроса
Тут и начинается главное шаманство. Первым делом получим token, который позволит успешно осуществить задуманное. Для этого лучше всего выйти из учётной записи (разлогиниться), т.е. стать анонимом и зайти на вашу страничку:
www.formspring.meВАШ_ЛОГИН
Смотрим исходный код страницы (обычно используются клавиши Ctrl+U). Ищем там или «token», или «id=”ask”», внутри которого ищем скрытое поле token.
Теперь нужно узнать User-Agent вашего браузера. По моим наблюдениям, token генерируется с использованием значения User-Agent, поэтому нужно узнать это значения для браузера, в котором искали token. Сделать это можно разными способами. Например, для Firefox или Google Chrome можно открыть консоль JavaScript и ввести:
Например, для моего браузера это строка:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Теперь переходим непосредственно к кодированию. Создайте форму с полем для ввода текста вопроса. Обработчик отправки формы должен быть примерно следующим:
$ch = curl_init(‘http://www.formspring.me/profile/ask/ВАШ_ЛОГИН’); $data = array( ‘token’ => ПОЛУЧЕННЫЙ_ТОКЕН, ‘question’ => ТЕКСТ_ИЗ_ФОРМЫ, ‘ajax’ => 1 ); curl_setopt($ch, CURLOPT_URL, ‘http://www.formspring.me/profile/ask/ВАШ_ЛОГИН’); curl_setopt($ch, CURLOPT_REFERER, ‘http://www.formspring.me/ВАШ_ЛОГИН’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_USERAGENT, ПОЛУЧЕННЫЙ_USER-AGENT); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if (curl_exec($ch) !== FALSE) < echo ‘Вопрос был успешно отправлен!’; >else < echo curl_error($ch); >curl_close($ch);
Используем библиотеку cURL для имитации работы браузера и отправки формы на сервер Formspring.
Ответы на урок 2023! Новый способ!
Если всё было сделано правильно, ответить на вопрос можно будет со страницы профиля на Formspring (как и другое управление вопросами/ответами). Я не описывал всего подробно, не рассматривал обработку ошибок, сконцентрировавшись лишь на донесении основной идеи.
Пример работы скрипта также прилагается.
UPDATE:
По многочисленным просьбам залил исходники и примеры использования на github. Оформил всё в виде отдельного класса. Вероятно, в коде много Индии, поэтому об ошибках, неточностях и пожаланиях сообщайте!
UPDATE 2:
Также люди просили исходники самой страницы. Получите.
Источник: habr.com
Программа «Вопросы и ответы» .. как сделать правельно. — Pascal
как сделать программу в которой есть вопроса 3-4, и 4 варианта ответа на каждый вопрос . и при это в конце считается кол-во правельных ответов и выдается оценка .. нам на паре говорили через case .. но не как не могу понять как сделать.. заранее благодарен за ответ.
Код к задаче: «Программа «Вопросы и ответы» .. как сделать правельно. »
Листинг программы
program Demo_Case; uses crt; var A:integer; begin clrscr; writeln(‘>>’); writeln(‘В каком году умер А.С.Пушкин?’); writeln(‘Варианты ответов:’); writeln(‘A)1990’); writeln(‘B)1837’); writeln(‘C)1881’); write(‘Вашь ответ: ‘); readln(A); case A of B:writeln(‘Ответ правельный’); else writeln(‘Ответ неверный’); end; readln; end.
Источник: studassistent.ru
Учебник. Создание бота вопросов и ответов
Создание бота вопросов и ответов с помощью настраиваемых ответов на вопросы и Службы Azure Bot без написания кода.
В этом руководстве описано следующее:
- Связывание проекта ответов на вопросы с Служба Bot Azure
- Развертывание бота
- общение с ботом в веб-чате;
- Включение бота в поддерживаемых каналах
Создание и публикация проекта
Выполнение указаний из руководства по началу работы. После успешного развертывания проекта вы будете готовы приступить к работе с этой статьей.
Создание бота
После развертывания проекта можно создать бота на странице Развертывание проекта :
- Вы можете быстро создать несколько ботов, которые указывают на один и тот же проект для разных регионов или тарифные планы для отдельных ботов.
- При внесении изменений в проект и повторном развертывании вам не нужно предпринимать дальнейшие действия с ботом. Он уже настроен для работы с проектом и работает со всеми будущими изменениями проекта. При каждой публикации проекта все боты, подключенные к нему, обновляются автоматически.
Интегрируйте бота с каналами
Нажмите Каналы в созданном вами ресурсе службы-бота. Вы можете включить бота в дополнительных поддерживаемых каналах.
Очистка ресурсов
Если вы не собираетесь дальше использовать это приложение, удалите ресурсы службы «Ответы на вопросы» и службы-бота.
Следующие шаги
Перейдите к следующей статье, чтобы узнать, как настроить в боте вопросов и ответов многоэтапные подсказки.
Источник: learn.microsoft.com