Скрипт сбора статистики для биржи Linkfeed

LINKFEED.RU XML-SOAPСегодня предлагаю ознакомиться с API интерфейсом известной среди вебмастеров и оптимизаторов биржи Linkfeed.ru, предоставляющим функции для удаленного получения и обработки данных о доходах, статусе страниц, заявок, балансе и т.п. API реализован на базе протокола SOAP, являющегося расширением XML-RPC. Взаимодействие с сервером выглядит следующим образом – клиент отправляет xml пакет с указанием нужной функции, ее параметров, сервер возвращает ответ – результат ее выполнения. Кстати, в прошлом месяце я уже рассматривал создание оповещений о новых заявках в sape.ru с помощью api функций предоставляемых системой и протокола XML-RPC.

Цель:
На этот раз решил написать для web-мастеров небольшой php скрипт сбора статистики доходов с отмеченных площадок за год (в разрезе месяцев), за месяц (в разрезе дней) и анализа динамики роста или падения.

LINKFEED STATISTICS скриншот
Детали реализации:
Из списка api функций Linkfeed.ru мне понадобились:
get_sites() – Возвращает список площадок/сайтов пользователя
get_site_income(site_id, year, month) – Возвращает доходы с площадки/сайта за указанный месяц
get_site_income_for_day(site_id, year, month, day) – Возвращает доходы с площадки/сайта за указанный день

Обратите внимание, что в скрипте нигде не заданы свойства html-элементов такие как выравнивание, цвет, фон, шрифт и т.п., это я оставляю для самостоятельного задания :-), ибо каждый сделает по-своему. Достаточно положить рядом со скриптом файл – styles.css , в котором все это указать.

Тем кому интересно как взаимодействует SOAP сервер с клиентом, можно вставить после вызова каждой функции код:

1
2
3
4
<?php
echo("Запрос :".htmlspecialchars($client->__getLastRequest())."<BR>");
echo("Ответ:".htmlspecialchars($client->__getLastResponse())."<BR>");
?>

К примеру, вызов get_sites() генерирует следующий запрос:

1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://api.linkfeed.ru" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:GetSites/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

сервер ответит на него:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <n1:GetSitesResponse xmlns:n1="https://api.linkfeed.ru"
        env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <return n2:arrayType="n1:LinkfeedStruct..Site[1]"
          xmlns:n2="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="n2:Array">
        <item>
          <day_cost xsi:type="xsd:double">+0</day_cost>
          <links_count xsi:nil="true"></links_count>
          <level1_max_anchor_length xsi:nil="true"></level1_max_anchor_length>
          <yap xsi:type="xsd:boolean">true</yap>
          <stop_sale xsi:type="xsd:boolean">false</stop_sale>
          <encoding_id xsi:type="xsd:int">1</encoding_id>
          <level1_max_links_count xsi:type="xsd:int">15</level1_max_links_count>
          <disable_adult xsi:type="xsd:boolean">true</disable_adult>
          <created_at xsi:type="xsd:date">2009-11-20Z</created_at>
          <after_text xsi:type="xsd:string"></after_text>
          <domain xsi:type="xsd:string">domain.com</domain>
          <yaca xsi:type="xsd:boolean">false</yaca>
          <class_attr xsi:type="xsd:string">link_linkfeed</class_attr>
          <auto_mode xsi:type="xsd:boolean">true</auto_mode>
          <level3_max_anchor_length xsi:nil="true"></level3_max_anchor_length>
          <before_text xsi:type="xsd:string"></before_text>
          <dmoz xsi:type="xsd:boolean">false</dmoz>
          <hide_url_in_search xsi:type="xsd:boolean">false</hide_url_in_search>
          <level3_max_links_count xsi:type="xsd:int">15</level3_max_links_count>
          <stop_words xsi:type="xsd:string"></stop_words>
          <pr xsi:type="xsd:int">0</pr>
          <status xsi:type="xsd:string">WORK</status>
          <level2_max_anchor_length xsi:nil="true"></level2_max_anchor_length>
          <id xsi:type="xsd:int">91895</id>
          <all_cost xsi:type="xsd:double">+20.775</all_cost>
          <yesterday_cost xsi:type="xsd:double">+3.06</yesterday_cost>
          <gop xsi:type="xsd:boolean">true</gop>
          <separator xsi:type="xsd:string">;</separator>
          <language_id xsi:type="xsd:int">1</language_id>
          <theme_id xsi:type="xsd:int">41</theme_id>
          <domain_level xsi:type="xsd:int">2</domain_level>
          <hide_url xsi:type="xsd:boolean">false</hide_url>
          <level2_max_links_count xsi:type="xsd:int">15</level2_max_links_count>
          <disable_obscene xsi:type="xsd:boolean">true</disable_obscene>
          <cy xsi:type="xsd:int">0</cy>
        </item>
      </return>
    </n1:GetSitesResponse>
  </env:Body>
</env:Envelope>

Скачать скрипт LINKFEED STATISTICS

Настройка:
Для работы с протоколом SOAP по https на хостинге под Win нужно подключить в php.ini две библиотеки:
[PHP_SOAP]
extension=php_soap.dll
[PHP_OPENSSL]
extension=php_openssl.dll

На хостингах с linux, как пишут разработчики, необходимо установить пакеты php-auth и php-soap.
Далее, находим в начале скрипта строчки:

1
2
3
4
<?php
$client = new SoapClient("http://api.linkfeed.ru/service/wsdl",
	array("trace"=>1,"exceptions"=>0,"login"=>"vasya","password"=>"parol")); 
?>

Меняем в них логин и пароль на свои. Вот, собственно, и все.

Скрипт распространяется по лицензии GNU GPL. Можете модифицировать его как захотите. Будут вопросы и предложения – пишите, всегда буду рад их выслушать и ответить.

Комментарии:

  1. Владимир

    Впервые слышу про апи у линкфеда, хм конечно там редко бываю, но если что пригодится. Благодарю

  2. Домейнер

    Как у вас доход в LinkFeed, по сравнению с SAPE.

  3. Diz

    Доход в Sape в несколько раз больше.

  4. Wilhelmi

    Доход на LINKFEED в 100 раз больше, чем на SAPE !

    К тому же на SAPE не принимают забаненные сайты Яндексом, а LINKFEED плевал на ЯНДЕКС с высокой горы!

    В этом году САПА вообще разориться вместе со своим грёбанным Яндексом!

    И по делом им!

Швидкі кредити готівкою тернопіль