Статистика

Участников проекта 105
Опубликовано статей 78
Отчет по карме. Топ 20

Новости блога

1 29.11.2013  Сегодня самым активным участникам newblog'а был выплачен доход с sape.
7 02.11.2012  Ура! Свешилось, нашему сайту дали тИЦ 10. Спасибо всем кто принимает участие в развитии нашего блога.
8 21.08.2012  Интеграция с sape.ru. Теперь каждый автор статей на newblog автоматически зарабатывает на рекламе.
Все новости

Топ 5 категорий

Программирование 46
Операционные системы 9
Базы данных 4
Туризм 2
Заметки 2

Последние 5 заметок (90)

gullyar - Закладки gullyar
gullyar - Ваша первая закладка
osadchaya - Закладки osadchaya
Ira0231188 - Закладки Ira0231188
Ira0231188 - Закладки Ira0231188

Ссылки

www.freedev.asia
proactive отзывы

php sape api

17.08.2012 13:15 | Просмотров: 2298 | Доход: 66.27 руб. | Комментариев: 1
[Программирование] 
Рейтинг: 3.33/3

Sape - это биржа купли\продажи ссылок с главных и внутренних страниц сайта. У sape есть удобный api для получения информации о площадках. В качестве транспортного механизма используется XML для кодирования сообщений в http (XML-RPC) xml-rpc интерфейс доступен по адресу api.sape.ru/xmlrpc/ по 80'ому порту, здесь же можно прочитать описание всех функций, которые можно использовать для работы с этим сервисом. XML запрос необходимо отправлять в кодировке UTF-8, вместо пароля хеш в md5. Для работы с протоколом удобно использовать библиотеку phpxmlrpc. Первым делом задаем базовые настройки:

protected $path = '/xmlrpc/';
protected $host = 'api.sape.ru';
protected $port = 80;
protected $login = 'yourlogin';
protected $password = ""; //md5()

Перед выполнением какого-либо запроса необходимо подключиться. Чтобы сделать это всего один раз, необходимо сохранять cookie.

        require_once xmlrpc/lib/xmlrpc.inc;       
        $client=$this->connect = new xmlrpc_client(
                $this->path,
                $this->host,
                $this->port
        );
       
        $query = new xmlrpcmsg(
                'sape.login',
                array(
                        php_xmlrpc_encode($this->login),
                        php_xmlrpc_encode($this->password),
                        php_xmlrpc_encode(true)
                )
        );
        $this->response = $client->send($query);
        foreach ($this->response->_cookies as $name => $value) {
            $this->connect->setCookie($name, $value['value']);
        }

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

  • (array) sape.get_site_pages((int) site_id, [(int) level], [(int) pr]) — список страниц сайта, каждый элемент содержит:
    • ID страницы,
    • статус и статус контекстный:
      • NEW — новая,
      • OK — активная,
      • DEL — удалена,
      • NO_CODE — код не найден.
    • УРЛ страницы,
    • PR,
    • уровень вложенности,
    • количество внешних ссылок,
    • цена,
    • количество ссылок.

На php этот запрос будет выглядеть так:

        $query= new xmlrpcmsg('sape.get_site_pages',array(php_xmlrpc_encode(123)));

        $this->response = $this->connect->send($query);
        $links=$this->response->val->me['array'];

Вот собственно и все, отсатется только распарсить результат:

        foreach($links as $page){
            if($page->me['struct']['nof_placements']->me['int']>0){
                $url=$page->me['struct']['uri']->me['string'];
                $price=$page->me['struct']['price']->me['double'];
                $count=$page->me['struct']['nof_placements']->me['int'];

        ...

Результат можно посмотреть тут:


© GM
| Комментировать статью |
  • Аноним 0 (17.07.2014 14:42)
    Теперь API есть не только в Sape. Например, у Miralinks и GoGetLinks он тоже появился! http://gogettop.ru/doc/api/  
    Бесплатные ключи в службе поддержки: http://gogettop.ru/support/newMessage 
    Welcome!
    | Ответить |