Форма обратной связи


Установка формы на сайт


Для установки формы обратной связи необходимо выполнить следующие шаги:

  1. Создать форму для отзывов на проектном хостинге Облако проектов.
  2. Добавить на все страницы сайта следующие строчки, подключающие форму обратной связи, заменив предварительно путь feedback/devprom на feedback/<кодовое название вашего проекта>:


 
 <script src="http://projectscloud.ru/scripts/jquery/jquery.pack.js" language="javascript" type="text/javascript"></script>
 <script src="http://projectscloud.ru/feedback/кодовое-название-проекта" language="javascript" type="text/javascript" charset="windows-1251"></script>
 

Если в работе вашего сайта уже используется jQuery, то первый скрипт подключать не нужно. Ниже приведен пример одной страницы. Сохраните текст в файл с расширением .html и откройте его в браузере, форма обратной связи уже работает.


 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
 <html>
 <body>
 <script src="http://projectscloud.ru/scripts/jquery/jquery.pack.js" language="javascript" type="text/javascript"></script>
 <script src="http://projectscloud.ru/feedback/devprom" language="javascript" type="text/javascript" charset="windows-1251"></script>
 <div>my site</div>
 </body>
 </html>
 


Настройка параметров формы


Вы можете настроить форму под свои нужды: изменить текст, цветовую гамму и т.д. Ниже перечислены параметры, которые вы можете изменить:

Название параметра

Назначение параметра

sourceVersion

Номер версии приложения, используется для автоматического добавления номера версии приложения, в котором была обнаружена ошибка или добавлена доработка

authorEmail

Электронный адрес автора пожелания или вопроса. Если пользователь зарегистрирован на "Облаке проектов", то это поле заполняется автоматически, а если нет, то пользователю предлагается его заполнить. Если вы не хотите обременять пользователя публикацией электронного адреса, то можно заполнить это поле адресом одного из участников проекта. Тогда все внешние пожелания и вопросы будут отправляться от имени этого участника

tagWidth

Ширины ярлыка

tagHeight

Высота ярлыка

tagBackground

Цвет фона ярлыка

tagTextColor

Цвет текста на ярлыке

tagBorder

Стили бордюра для ярлыка

fontFamily

Семейство шрифтов, используемых для отображения ярлыка и формы обратной связи

fontSize

Размер шрифта, используемого для отображения текста на ярлыке и форме обратной связи

formBackground

Цвет фона формы обратной связи

formWidth

Ширина формы обратной связи

formTitle

Заголовок формы обратной связи, а также текст отображаемый на всплывающей подсказке над ярлыком

Ниже приведен пример того, как задать собственные настройки для формы обратной связи. Например, мы хотим изменить цветовую схему ярлыка и формы:


 
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
 <html>
 <body>
 <script src="http://projectscloud.ru/scripts/jquery/jquery.pack.js" language="javascript" type="text/javascript"></script>
 <script src="http://projectscloud.ru/feedback/devprom" language="javascript" type="text/javascript" charset="windows-1251"></script>
 <script language="javascript">
 feedbackOpts.tagBackground = 'red';
 feedbackOpts.formBackground = 'red';
 </script>
 <div>my site</div>
 </body>
 </html>
 


Протокол взаимодействия с проектным хостингом


В данном разделе описан протокол взаимодействия формы обратной связи с проектным хостингом "Облако проектов". Обмен данными осуществляется по HTTP, через POST/GET запросы.

Входными параметрами являются:

  • project - кодовое название проекта, например, devprom
  • url - путь к проектному хостингу, например, http://projectscloud.ru

Отправка пожелания в проект (данные передаются в кодировке UTF-8):

  1. HTTP POST запрос по адресу url+"/issue/"+project
    • description - описание пожелания
    • author - email автора пожелания, данный параметр необязателен, если пользователь уже авторизован на "Облаке проектов".
  2. Ответ приходит в формате JSON (text/html; charset=windows-1251): ({"issue":"URL к пожеланию"}) - в случае успешного создания пожелания и ({"error":"Текст ошибки"}) - в случае возникновения ошибки.

Отправка вопроса в проект (данные передаются в кодировке UTF-8):

  1. HTTP POST запрос по адресу url+"/ask/"+project
    • caption - содержание вопроса
    • author - email автора пожелания, данный параметр необязателен, если пользователь уже авторизован на "Облаке проектов".
  2. Ответ приходит в формате JSON (text/html; charset=windows-1251): ({"issue":"URL к пожеланию"}) - в случае успешного создания пожелания и ({"error":"Текст ошибки"}) - в случае возникновения ошибки.

Можно использовать различные варианты защиты от нежелательного доступа к проекту (без этого внешнее приложение может заспамить проект пожеланиями):

  1. CAPTCHA - посетитель должен ответить на контрольный вопрос, в этом случае при отправке пожелания или вопроса необходимо дополнительно передать следующие параметры:
    • answer - ответ на контрольный вопрос
    • hash - хеш-значение, полученное для данного контрольного вопроса ранее.
  2. Приватный ключ проекта - используется для автоматического добавления ошибок в проект из приложений. При отправке пожелания необходимо передать следующий параметр:
    • key - ключ проекта, который можно получить по ссылке: url+"/feedback/"+project+"/auth/key", ключ доступен только участникам проекта.

Получение данных контрольного вопроса:

  1. HTTP GET по адресу url+"/feedback/"+project+"/auth/question"
  2. Ответ приходит в формате JSON (text/html; charset=windows-1251): ({"caption":"Текст вопроса","hash":"12837128781723"})
    • caption - текст контрольного вопроса;
    • hash - хеш-значение, по которому проверяется правильность ответа на вопрос.


Автоматическая регистрация ошибок


Если у вас есть приложение или сайт, то вы можете автоматизировать регистрацию сообщений об ошибках, возникающих при работе приложения, непосредственно в вашем проект на "Облаке проектов". Это позволит вам:

  • оперативно узнавать о проблемах в работе приложения или сайта;
  • не потребует постоянного просмотра логов сервера или приложения;
  • максимально исключит тот фактор, что пользователи ленятся сообщать об ошибках в работе приложения;
  • автоматизировать тестирование приложения или продукта;
  • решить проблему организации совместного доступа команде к боевому серверу;

Для использования механизма автоматического добавления ошибок в проект, необходимо передать аутентификационный ключ, чтобы снизить угрозу автоматической генерации спама в ваш проект. Для получения ключа, необходимо перейти по ссылке: http://projectscloud.ru/feedback/<кодовое_название_проекта>/auth/key

Ключ доступен только авторизованным участникам проекта.

PHP

Для приложений или сайтов, разработанных на PHP, вам необходимо скачать PHPBugReporter.php. Необходимо включить этот модуль в исполняющийся скрипт и, предварительно, изменить в нем кодовое название проекта на нужное вам:


 
 $customerrorhandler->setProject( '<кодовое название проекта>' );
 $customerrorhandler->setAuth( '<ключ>' );
 

При обработке ошибки в вашем проекте будет создано пожелание с описанием ошибки и стеком вызова.

C#

Для приложений или сайтов, разработанных на платформе .Net с использованием C# или ASP.net, вам нужно скачать модуль CSharpBugReporter.cs. Включите его в проект и в местах, где выполняется обработка ошибок вставьте следующий код:


 
 using DEVPROM.CSharpBugReporter;
 ...
 Context context = new Context();
 context.Server = "projectscloud.ru";
 context.Project = "<кодовое название проекта>";
 context.AuthKey = "<ключ>";
 
 report = new Report();
 report.Description = "<текст сообщения об ошибке>";
 report.Submit(context);
 

Вы можете прикрепить к отчету вложения (attachments) в виде текста (report.AttachText), или ссылки на файл (report.AttachFile), тогда при создании пожелания, к нему будут прикреплены эти вложения. К каждой ошибке автоматически прикрепляется файл со стеком вызова.


Обсуждения
22.01.2010 15:28
Протокол взаимодействия с проектным хостингом