Документация по API
Перед прочтением документации советуем Вам ознакомиться с Руководством пользователя.
Для удобства пользователей имеется доступ к сервису через API. Он позволяет, не заходя на сайт, использовать все его основные функции. Формат вызова интерфейса:
http://investorjournal.net/api.php? user=ваш_логин&key=ваш_ключ_доступа_к_API &do=операция&дополнительные_параметры ваш_логин - логин, используемый при входе на сайт. Параметр передается в url-кодированном формате (urlencoded); ваш_ключ_доступа_к_API можно взять в разделе "Данные". Значение этого ключа формируется из пароля и из соображений безопасности НЕ сохраняется в базе. операция - наименование операции (post или add). В качестве ответа интерфейс возвращает результат (код) выполнения. Положительное число (больше 0) означает, что задание принято и ему присвоен этот номер; Отрицательные числа (код с минусом) означают, что задание НЕ принято из-за ошибки. Расшифровка кодов ошибок: 100 - Пользователь с данной парой "логин/ключ" не найден 99 - Пользователь заблокирован 98 - Тема (проект) не найден(а) 97 - Неизвестная операция Для отправки (post) сообщения необходимы дополнительные параметры тема и текст.
http://investorjournal.net/api.php? user=ваш_логин&key=ваш_ключ_доступа_к_API &do=post&project=тема&send=1&text=текст если указан необязательный параметр send равный 1, то сообщения отправляются немедленно, иначе (по умолчанию) просто помещаются в очередь, и для отправки необходимо зайти на сайт и запустить их обработку. Параметр тема должен быть равен наименованию проекта (темы) в сервисе или совпадать со значением наименование проекта для API. Это значение можно задать в свойствах проекта (Параметры - Задать). Параметр текст передается в url-кодированном формате (urlencoded). Пример использования этой функции в HYIP мониторингах. Задача: Необходимо сделать так, чтобы при добавлении в админке монитора вклада или выплаты - сервис автоматически отписывался на форумах. Возьмем для примера скрипт от GoldCoders (ГК) на PHP, т.к. он самый распространенный. В нем за добавление выплат отвечает файл silent_actions.inc.php. Открываем его и ищем в тексте место, где обрабатывается параметр a равный add_trunsaction. if ($frm['a'] == 'add_trunsaction') где-то немного ниже выполнение запроса к базе: if (!($sth = mysql_query ($q))) { exit (mysql_error ()); } затем редирект: ... header ('Location: ?a=edit_statistics&lid=' . $frm['lid']); И после - выход: exit (); Добавим следующий код после header, но перед exit: // подготовка переменных $ijlogin = urlencode('ваш_логин'); $ijkey = 'ваш_ключ_доступа_к_API'; $ijprojapiname = $frm['lid']; // текст зависит от типа транзакции if ($frm['type'] == 1) { // это ВЫПЛАТА $text = 'ваш_текст сообщения о_выплате'; } else { // это ВКЛАД $text = 'ваш_текст сообщения о_вкладе'; } // вызов API readfile("http://investorjournal.net/api.php?user=$ijlogin&key=$ijkey&do=post&project=$ijprojapiname&send=1&text=".urlencode($text)); Так как названия проекта в мониторинге и в сервисе могут быть различными, а также с целью упрощения кода - идентификацию проекта будем проводить по его коду (номеру) в листинге. Это значение доступно как элемент массива $frm['lid']. Его мы и передаем в качестве параметра ($ijprojapiname).
Не забудьте установить на сервисе это же значение в свойствах проекта наименование проекта для API. При формировании текста можно также использовать значения, ранее записанные в базу, например: $text = 'ВЫПЛАТА дата: '.$date.' батч: '.$frm['batch'].' сумма: '.sprintf('%.2f', $frm['amount']).' комментарий: '.$frm_orig['comment'].' Спасибо, Админ!'; Таким образом, для каждой записи в шаблон будут динамически вписываться свои значения. Следующая проблема заключается в том, что форумы обычно "одноязычные". И хотелось бы, чтобы на англоязычные форумы отправлялся текст на английском, а на русскоязычные - на русском. И такая возможность есть! Чтобы использовать мультиязычный постинг, текст сообщения должен быть разбит на языковые разделы. Текст отправляемого сообщения будет состоять только из разделов, соответствующих языку форума Пример: "этот текст будет виден на всех форумах <en>this text only in english</en> этот снова на всех <ru>этот только на русских</ru> и этот на всех" теги можно не закрывать: "этот текст будет виден на всех форумах <en>this text only in english<ru>этот только на русских</> и этот на всех" Окончательный полный вариант кода: // подготовка переменных $ijlogin = urlencode('ваш_логин'); $ijkey = 'ваш_ключ_доступа_к_API'; $ijprojapiname = $frm['lid']; // текст зависит от типа транзакции if ($frm['type'] == 1) { // это ВЫПЛАТА $text = '<en>PAID<ru>ПЛАТИТ</>! <en>date<ru>дата</>: '.$date.' <en>batch<ru>батч</>: '.$frm['batch'].' <en>amount<ru>сумма</>: '.sprintf('%.2f', $frm['amount']).' <en>comment<ru>комментарий</>: '.$frm_orig['comment'].' <en>Thanks Admin<ru>Спасибо, Админ</>!'; } else { // это ВКЛАД $text = '<en>MY DEPOSIT<ru>МОЙ ВКЛАД</>! <en>date<ru>дата</>: '.$date.' <en>batch<ru>батч</>: '.$frm['batch'].' <en>amount<ru>сумма</>: '.sprintf('%.2f', $frm['amount']).' <en>comment<ru>комментарий</>: '.$frm_orig['comment'].' <en>Good luck<ru>Удачи</>!'; } // вызов API readfile("http://investorjournal.net/api.php?user=$ijlogin&key=$ijkey&do=post&project=$ijprojapiname&send=1&text=".urlencode($text)); Можно отдельно задать текст на русском и английском, а потом объеденить их перед отправкой: $text = "<ru>$textru<en>$texten"; По всем возникшим вопросам прошу обращаться в поддержку.
блог бомжа | ||||||||||