BETA-версия полнофункционального API для работы в MainLink

Сервисы, входящие в комплект:
  • start.asmx - стартовый сервис (Авторизация, Выход, Проверка баланса)
  • advert.asmx - все для рекламодателя (Проекты, экспорт ссылок, поиск страниц, покупка ссылок, снятие ссылок)
  • webmaster.asmx - все для владельца сайта (Сайты, экспорт ссылок, цензура)
  • catalogs.asmx - справочник MainLink (категории, списки, константы)
  • fin.asmx - финансовые отчеты (расходы / приходы)
  • stat.asmx - статистика по MainLink (средние цены)
  • sok.asmx - MainLink для СОКов (Сервисов по обслуживанию клиентов)

Как работает?
Коннектитесь к сервису по start.asmx, передаете Cookie (по ним авторизация и сессия) и затем юзаете методы.
Примеры:

Пример программы, работающей по API с MainLink:

Скачать программу MainLink

Исходный код программы

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


PHP (использует библиотеку nusoap)
$advert_url = "http://api.mainlink.ru/advert.asmx?WSDL";
$login_url = "http://api.mainlink.ru/start.asmx?WSDL";

$login = new nusoap_client($login_url, true);
$advert = new nusoap_client($advert_url, true);
$login->setUseCurl(1);
$login->call('sys_LogIn', array('Login' => 'qqqq', 'Password' => 'qqqqq'));
$balance = $login->call('sys_Balance', array());
$cookies = $login->getCookies();
foreach ($cookies as $cookie) {
       $advert->setCookie($cookie['name'], $cookie['value']);
}
$res = $advert->call('mlapi_AddProject', array());


Глюк: при получении xml-кода, содержащего символы &, в процессе парсинга они удаляются. Глюк возникает при связке nusoap 0.73 + PHP 5

ASP.NET (2.0)
namespace hosttest
{
     public class test
     {
          private CookieContainer cookie;
          public double test()
          {
               cookie = new CookieContainer();
               MainLink.mainlinkapi r = new MainLink.mainlinkapi(); 
               // Не забудьте создать Web-Reference на вышеуказанные сервисы (которые планируете использовать)
               r.CookieContainer = cookie;
               r.ml_LogIn("login", "password");
               return r.mlapi_GetBalance();
          }
     }
}