Функция "Сообщить об ошибке"

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

Функция "Сообщить об ошибке"

Сообщение shade » 09.01.2009 02:37:52

В API Шаманграда добавлена функция BugTracker.Report, которая позволяет отправлять сообщения об ошибках прям из вашего ПО.

Данная функция позволяет добавить произвольное сообщение в баг-треккер. Добавленное сообщение будет отслеживаться точно также как и любое другое добавленное через веб-интерфейс, включая, но не ограничиваясь тем, что пользователи подписанные на секцию получат уведомление на e-mail, автор сообщения будет получать уведомления на e-mail при изменении сообщения или появлении комментариев.

Вы можете использовать эту функцию для отправки сообщений например при возникновении необработанной исключительной ситуации. В многих языках программирования (и Pascal, C++, PHP не являются исключениями) позволяют устанавливать обработчики не обработанных исключений.

В таком обработчике можно создать форму с помощью которой выдать более красивое сообщение об ошибке и предложить отправить отчет об ошибке на сервер в баг-треккер. Кроме комментария пользователя вы можете отправить имеющуюся у вас информацию (эту информацию вы должны собрать сами, т.к. пока API не делает этого автоматически):

  • Тип и версия операционной системы
  • Версия вашей программы
  • Класс исключения
  • Имя файла и строка в которой возникла проблема (если влючена отладочная информация)

Если вы пользователь Windows XP, вас наверняка не раз доставало такое вот окошко с предложением отправить сообщение в M$:
Изображение

Теперь вы можете создать своё аналогичное окошко, надеюсь оно будет более удобное и функциональное, а ваши пользователи будет видеть его крайне редко.

Для реальной работы вам скорее всего понадобиться ещё пара функций..
Текущую стабильную документацию можно найти тут: http://shamangrad.net/rpc/doc/
последнюю нестабильную тут: http://svn.shamangrad.net/pms/trunc/rpc/doc/index.html
Небольшой пример консольной программы вызывающией некоторые функции: http://svn.shamangrad.net/pms/branches/ ... l/demo.pas

Для подключения API имеются модули для Pascal (FreePascal, Delphi), C++ и PHP (последний пока ещё сырой). Имеющиеся модули требуют libxml2, libcurl и (опционально) OpenSSL (если эти зависимости вам кажутся слишком тяжелыми, то вы можете написать свой транспортный уровень - аналог класса TWSXMLRPCGate)

Если у вас имеются вопросы по использованию API, мы можете задавать их прям в этой теме :wink:
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Re: Функция "Сообщить об ошибке"

Сообщение alexs » 09.01.2009 20:57:53

Вот бы ещё описание api было одним документом - было бы вобще здорово.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Функция "Сообщить об ошибке"

Сообщение shade » 09.01.2009 23:42:24

alexs писал(а):Вот бы ещё описание api было одним документом - было бы вобще здорово.

Если нужно сделаем ;)

Добавлено спустя 2 часа 10 минут 38 секунд:
Сделал по модулям: http://svn.shamangrad.net/pms/trunc/rpc/doc/index.html

Хотя если это нужно для офлайнового изучения, то можно просто сделать чекаут (или экспорт) из svn:
Код: Выделить всё
svn co http://svn.shamangrad.net/pms/trunc/rpc/doc/ shamangrad-api
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Re: Функция "Сообщить об ошибке"

Сообщение alexs » 10.01.2009 16:58:08

то что надо
будем пробовать
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Функция "Сообщить об ошибке"

Сообщение Attid » 11.01.2009 17:06:50

доку пока не читал, много букв =) а пользователь который будет отправлять должен быть обязательно зарегистрирован на шамане ?
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Функция "Сообщить об ошибке"

Сообщение shade » 11.01.2009 17:23:16

Attid писал(а):доку пока не читал, много букв =) а пользователь который будет отправлять должен быть обязательно зарегистрирован на шамане ?

На данный момент, да.
Но также через АПИ можно зарегистрировать пользователя.

В общем это не простой вопрос.
Как вариант я думал следующие варианты:
1. добавление сообщения без регистрации от имени специальной учетной записи police, который в частности закрывает сообщения в треккере
2. реализовать делегирование: разработчик регистрирует "домен" (например, example), после чего может использовать специальную функцию в ReportDomain(user, summary, description), где в качестве user может передавать значения типа 'пользователь@домен' (например, vasya@example, piter@example), при чем каждого отдельного пользователя регистрировать не нужно, только один раз домен.

Со второым пунктом возникает вопрос: как идентифицироывать домен, чтобы нельзя было публиковать сообщения от имени пользователей в чужом домене?

И ещё проблема - данная функция идеальный инструмент для спамера. Пока не страшно, т.к. сервис ещё малопулярен, но в будущем такая проблема может возникнуть. С этим я думаю боросться простым методом - все сообщения добавляемые через эту функцию будут по умолчанию скрытыми (их будут видеть только разработчики), а следовательно эффективность спама будет низкой.
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Re: Функция "Сообщить об ошибке"

Сообщение shade » 17.01.2009 18:54:56

Решил сделать проще немного проще. Можно будет регистрировать домены. А в домене можно будет регистрировать пользователей (у них будет логин вида user.domain). Но регистрировать пользователей в домене могут только те, кому это явно разрешено (владельцем домена). Зарегистрированый пользователь получает логин и пароль и имеет все те же права что и обычные пользователи, сами зарегистрировавшиеся через сайт. Отличие в том, что владелец домена может регистрировать в своем домене сколько угодно пользователей и для этого не требуется активизировать пользователей или подтверждать e-mail. В частности будет проще с привлечением пользователей: сам зарегистрировал и выслал готовые логин/прароль.

http://svn.shamangrad.net/pms/trunc/rpc ... nUser.html

Пока данная функция реализована в RPC, но думаю в следующем обновлении будет и веб-интерфейс.
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Re: Функция "Сообщить об ошибке"

Сообщение shade » 20.01.2009 00:41:43

Сделал демку для примера использования API в Lazarus.
Подробности тут: http://mr-shade.ya.ru/replies.xml?item_no=30

Скачать можно по ссылкам:
gdemo-1.0-rc1.zip - собственно демка (для Windows)
wsrpc-contrib.zip - DLL библиотеки без которых демка работать не будет. Для nix* нужны пакеты libxml2, OpenSSL и libcurl, которые ставятся по умолчанию (может быть за исключением последней) практически во всех дистрибутивах.

А исходники (FreePascal/Lazarus) можно взять в svn:
svn co http://svn.shamangrad.net/pms/trunc/rpc/pascal/ gdemo
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/


Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

Рейтинг@Mail.ru