Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Вопросы по работе системы (http://forum.sape.ru/forumdisplay.php?f=13)
-   -   SAPE XML-RPC (http://forum.sape.ru/showthread.php?t=11957)

cheboor 16.04.2009 16:57

Цитата:

Сообщение от Avelon (Сообщение 430471)
PHP код:

<?xml version="1.0" encoding="UTF-8"?>
<methodCall><methodName>sape.get_messages</methodName><params><param><value><struct><member><name>dates</name><value><string>2009-04-16</string></value></member><member><name>types</name><value><array><data><value><int>2</int></value><value><int>15</int></value></data></array></value></member></struct></value></param><param><value><int>1</int></value></param><param><value><int>20</int></value></param></params></methodCall>

вот так должно работать

Е-е-е-е, спасибо! Все заработало :)

Добавлено через 17 минут
Но Вы бы внесли изменения то на страницу http://www.sape.ru/api_xmlrpc.php: даты нужны не в массиве, а строчкой; два последних параметра (если правильно интерпритировал получаемые периодически ошибки) являются обязательными, да и лимиты на них остаются не выясненными. Как то кривовато get_messages работает, т.е. результат вроде как и есть, но пользоваться жуть как не удобно. Но это уже мелочи

Avelon 16.04.2009 17:07

Цитата:

Сообщение от AlienZzzz (Сообщение 430500)
____

у меня удаление по 10к ссылок же.

Вы попробуйте, например удалить 1000 ссылок из разных урлов и проектов.
____

я же показываю данные только при отправке данных к вам и приеме.! не больше.

ну так я рассказал сколько операций

удаляйте пачками по 30-50 штук. 1000 - это слишком много за раз.


мы удаляли из разных урлов и проектов 30 удалений - 1 сек

Цитата:

Сообщение от AlienZzzz (Сообщение 430500)
Вы можете дать пример рабочий на PHP? просто кусок кода

Я как ни колдовал на питоне и пых пыхе, так ничего и не смог . в любом случае она возвращает не XML ((((


это я не вам писал

AlienZzzz 16.04.2009 17:16

Цитата:

Сообщение от Avelon (Сообщение 430568)
ну так я рассказал сколько операций
удаляйте пачками по 30-50 штук. 1000 - это слишком много за раз.
мы удаляли из разных урлов и проектов 30 удалений - 1 сек

Я удаляю пачками по 30-40 шкук как и говорил.
___

как с росии так не из росии . не суть скорость ответа 1-15 сек.( я включил зипование, каюсь оно было выключено, но все ровно долго)
__

Это происходит так как если у проекта 10000 ссылок куплено на урле, при удалении ( да Вас приходится парсить, так как вы не делаете в XMLRPC удаление ((( ) , вы возвращаетет список весь. в этом то и проблема, что я получаю Ваш СЕРП )))

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

sVs 21.04.2009 09:17

API - не работает примерно с 18 часов 20 апреля... ?

AlienZzzz 21.04.2009 09:21

Цитата:

Сообщение от sVs (Сообщение 434262)
API - не работает примерно с 18 часов 20 апреля... ?

Норма уже починили вчера помомеу

sVs 21.04.2009 10:17

разобрался... похоже что у нас теперь при авторизации еще один Set-Cookie: p=... следом за Set-Cookie: SAPE=... выставляется
вот то-то оно и не стреляло :-)

AlienZzzz 21.04.2009 10:36

Цитата:

Сообщение от sVs (Сообщение 434316)
разобрался... похоже что у нас теперь при авторизации еще один Set-Cookie: p=... следом за Set-Cookie: SAPE=... выставляется
вот то-то оно и не стреляло :-)

да нет . я только что проверил и так работает.

pp7 22.04.2009 16:07

Это такое только у меня или у всех?
Пытаюсь добавить УРЛ функцией "sape.url_add". Параметры передаю как положено.
Ответ такой: server error. method not found. sape.url_add
использую Zend Framework 1.7.8

Функции sape.get_user, sape.get_projects, sape.get_urls прекрасно работают.

Помогите советом.
Спасибо.

Добавлено через 42 минуты
Цитата:

Сообщение от pp7 (Сообщение 435599)
Это такое только у меня или у всех?
Пытаюсь добавить УРЛ функцией "sape.url_add". Параметры передаю как положено.
Ответ такой: server error. method not found. sape.url_add
использую Zend Framework 1.7.8

Функции sape.get_user, sape.get_projects, sape.get_urls прекрасно работают.

Помогите советом.
Спасибо.

Нашел, в чем была проблема.
Я обращался к http://www.sape.ru/api_xmlrpc.php
а нужно было обращаться к
http://www.sape.ru/api_xmlrpc.php?v=extended

ура, все работает! :)

shr 01.05.2009 23:37

pp7, по головке тебя теперь вряд ли погладят...

pp7 02.05.2009 00:11

Цитата:

Сообщение от shr (Сообщение 442912)
pp7, по головке тебя теперь вряд ли погладят...

C чего это вдруг?

AlienZzzz 08.05.2009 15:45

Я не знаю что вы сделали но спасибо Вам большое.
 
Скорость повысилась в разы. я просто плачу. Смотрю и плачу.
СПАСИБО.

pp7 08.05.2009 20:06

Граждане, а как получить количество закупленных ссылок и сумму для определенного АВТОфильтра?
Функция sape.get_filters_auto возращает данные по автофильтрам, но не возвращает количество закупленных по ним ссылок и сумму. Хотя было бы логичнее, чтобы там были эти данные.

Что можно сделать? Как посчитать количество купленных ссылок по автофильтру?
В интерфейсе sape.ru это же есть...

я в растерянности. Help =)

ru-moto 18.05.2009 16:57

Подскажите, а вообще работает авторизация когда пароль зашифрован по MD5 ? Если да, то в каком виде запрос должен быть. А то все испробовал-результат один : Login failed :o(

sVs 18.05.2009 18:18

ru-moto, работает
все так же, как и с plain-text, только true в последнем параметре:
Код:

sape.login($login, $md5_password , true)

ru-moto 18.05.2009 21:30

sVs,
да вот в том то и дело что у меня почему то выдает что авторизация не проходит. Вот xml запрос, вроде все правильно:
Код:

<?xml version="1.0" encoding="UTF-8"?>

<methodCall>

  <methodName>sape.login</methodName>

  <params>

  <param>

<value><string>логин</string></value>

  </param>

  <param>

<value><string>md5хэш</string></value>

  </param>

  <param>

<value><boolean>1</boolean></value>

  </param>

  </params>

</methodCall>


catregist 18.05.2009 22:56

Спасибо, господа и от меня!
Цитата:

Сообщение от AlienZzzz (Сообщение 447410)
я просто плачу. Смотрю и плачу.

Присоединяюсь в этой эмо-пати к Петру.. как же долго мы этого ждали =) Глюков практически нет, падать стали реже.. а скорость - супер! Всех благ!

Последний Герой 18.05.2009 23:00

ru-moto, md5хеш пароля нужен, а не имя папки

ru-moto 19.05.2009 08:49

Ошибка найдена. Хэш должен быть в нижнем регистре оказывается. Иначе сапа не принимает.

Последний Герой,
это шутка какая то? так я не понял.

MVH 27.05.2009 22:36

Почему-то не работает фильтр по типам сообщений в sape.get_messages.
Посылаю вот что:

Код:

<?xml version="1.0"?>
<methodCall>
<methodName>sape.get_messages</methodName>
<params>
<param>
<value><struct>
<member><name>dates</name>
<value><array>
<data>
<value><string>2009-05-26</string></value>
<value><string>2009-05-27</string></value>
</data>
</array></value>
</member>
<member><name>types</name>
<value><array>
<data>
<value><int>2</int></value>
<value><int>5</int></value>
</data>
</array></value>
</member>
</struct></value>
</param>
<param>
<value><int>1</int></value>
</param>
<param>
<value><int>10</int></value>
</param>
</params>
</methodCall>

В итоге выбираются извещения всех типов за нужные даты.

AlienZzzz 28.05.2009 15:28

Что за ноывая ошибка в API
 
Fault: <Fault 664: 'SAPE.RU: Extended mode denied :o('>

Начала возникать при :
bResult = oServer.sape.login( oPropertyUser.sape_login.value, oLocalConfig.sape_password, True )

Вчера не было . только сегодня.

ru-moto 28.05.2009 17:58

в описание теперь другой адрес стоит: http://xmlrpc.sape.ru/ но и с ним у меня не работает что то. Выдает 404 ошибку

MVH 28.05.2009 18:42

Цитата:

Сообщение от ru-moto (Сообщение 461370)
в описание теперь другой адрес стоит: http://xmlrpc.sape.ru/ но и с ним у меня не работает что то. Выдает 404 ошибку

Какой другой? Всё тот же. Я сейчас к нему коннекчусь, всё ок. Правда я по https коннекчусь: https://xmlrpc.sape.ru/

ru-moto 28.05.2009 19:05

ну вообще то раньше был не http://xmlrpc.sape.ru/. Теперь же в описание стоит этот адрес, но выдает ошибку 404.

MVH 28.05.2009 20:11

Цитата:

Сообщение от ru-moto (Сообщение 461447)
ну вообще то раньше был не http://xmlrpc.sape.ru/. Теперь же в описание стоит этот адрес, но выдает ошибку 404.

Проверил сейчас, 404 только по HTTP выдаёт. По HTTPS - всё нормально.

Добавлено через 40 минут
Просьба к программистам добавить в get_messages возможность задавать порядок сортировки. Сейчас все извещения сортируются по дате по убыванию и нормально скачать все извещения не получается из-за того, что содержимое первой страницы с извещениями (и других тоже) постоянно скачет, т.к. новые извещения постоянно появляются.

Так же просьба возвращать уникальный id извещения, что бы можно было его уникальность определить.

ru-moto 29.05.2009 13:20

Так что с http://xmlrpc.sape.ru/ ? Это только у меня не работает? :)
Если нет, то когда заработает?

arxela 29.05.2009 13:55

вчера еще работало по http://www.sape.ru/api_xmlrpc.php, а теперь поддомен отдельный. по http нет доступа, по https есть

MVH 30.05.2009 13:33

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

[date] => ...
[body] => Размещение на странице * ссылки "*" на URL * отменено. Вебмастер добавил домен * в BL
[type] => ...
[project_id] => ...
[site_id] => ...
[url_id] => ...
[user_type] => ...


Что приходится делать. Во-первых, из-за того, что при отмене заявки и снятии ссылки с занесением в BL, а так же при удалении оптимизатором проекта, не известно отмена ли это заявки или снятие ссылки. Приходится потом смотреть, не поступало ли предварительно неподтверждённой заявки на эту ссылку. А можно было бы просто разные извещения для отмены заявки и для снятия уже размещённой ссылки сделать.

Ну ладно, это я поборол, пропарсив переменную body и анализируя потом предыдущие извещения. Но и тут косяки полезли. В sape.ru собрал различные форматы извещений об отмене, забил их в программу и бац - в интерфейсе sape.ru формат извещений отличается от возвращаемых через XML RPC. Например,
в sape.ru: "Размещение на странице * ссылки "*" на URL * отменено. Вебмастер добавил домен * в BL"
в xml rpc: "Размещение на странице * ссылки "*" на URL * отменено. Оптимизатор добавил сайт в BL"

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


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


Ну почему нельзя было вместо этой каши в body возвращать отдельно URL адрес страницы, ссылки, текст ссылки, для отмены сделать 2 типа (отмена заявки и снятие уже размещённой ссылки) и подтипы (просто отказ, с занесением в BL, удаление проекта, освобождение места под unsleep, превышение макс. числа внешних ссылок и т.п.). Ну и конечно же почему нельзя сделать нормальной документации??? Вот что у вас написано для get_messages:

Цитата:

(array) sape.get_messages((hash) filter, [(int) pn = 0 [, ps = 100]]) — выбор сообщений по параметрам, указанным в ассоциированном массиве filter (pn - номер страницы, ps - кол-во сообщений на странице). Возможные фильтры:

* dates — массив дат за которые необходимо получить сообщения, доступны только последние семь дней
* query — текст фильтра(UTF-8)
* types — массив типов сообщений
o 1 - На собственной странице * размещена новая ссылка * на URL *
...

Если что-то нашлось, то возвращается массив:

* row_count — кол-во сообщений
* page_count — кол-во страниц
* messages — массив сообщений, каждый элемент содержит:
o date — дата
o body — текст сообщения(UTF-8)
o type — тип
Я не пойму, кто это писал? Секретарша, которая этот API в глаза не видела??? Тип filter должен быть struct, а не hash (такого в спецификации вообще нет). pn и ps - это ОБЯЗАТЕЛЬНЫЕ параметра, притом pn должен быть равен 1, а не нулю, иначе ошибка возвращается. В messages возвращается не 3 поля.

Про то, что фильтр по типам в get_messages не работает и приходится скачивать все извещения (большая часть из которых мне не нужна) я молчу.

И это только по get_messages.

Скажите, неучто нельзя было выделить достаточно время на разработку нормального API? Нельзя было для тех же извещений возвращать максимально возможный набор полей (ту же цену ссылки), добавить параметр в котором можно было бы указывать какие поля выбирать (что бы в пустую не качать трафик), возможность задать сортировку и сделать нормальную документацию?

Самое плохое то, что я понимаю что разговариваю со стенкой и всё это разработки пропустят мимо ушей. Ну хоть высказался, а то уже накипело...

Avelon 30.05.2009 13:50

обязательно учтем пожелания. на следующей неделе заставлю проштудировать программистов все посты за последнее время

MVH 30.05.2009 18:31

Цитата:

Сообщение от Avelon (Сообщение 462953)
обязательно учтем пожелания. на следующей неделе заставлю проштудировать программистов все посты за последнее время

Спасибо, с нетерпением буду ждать.

Добавлено через 2 часа 52 минуты
Просьба опубликовать все дополнительные описания для извещений типа 5 - "Размещение на странице * ссылки * на URL * отменено." с указанием для кого они могут присылаться (вебместера/оптимизатора).
Я имею ввиду вот эти подтипы:
  • Размещение ссылки не подтверждено оптимизатором
  • От оптимизатора не было реакции на принятую заявку в течение 3 дней.
  • Ссылка была в статусе ERROR дольше, чем может позволить себе оптимизатор!
  • Закончился срок жизни SLEEP-ссылки (120 дней)
  • и т.д.

Добавлено через 22 минуты
Цитата:

Сообщение от MVH (Сообщение 462933)
В sape.ru собрал различные форматы извещений об отмене, забил их в программу и бац - в интерфейсе sape.ru формат извещений отличается от возвращаемых через XML RPC. Например,
в sape.ru: "Размещение на странице * ссылки "*" на URL * отменено. Вебмастер добавил домен * в BL"
в xml rpc: "Размещение на странице * ссылки "*" на URL * отменено. Оптимизатор добавил сайт в BL"

По всей видимости, это не отличие в форматах, а 2 совершенно разных сообщения. Нашёл оба в обоих интерфейсах. Только не пойму в чём разница.

sVs 31.05.2009 08:36

Все-таки, SOAP наверное был бы более удобен в API, чем XML-RPC:
документированность в wsdl - самодостаточная, все типы и структуры - описаны,
при расширении функционала - всем сразу видно, что и как поменялось,
да и с обработкой ошибок - значительно лучше дело обстоит.
(Просто мысли вслух)

AlienZzzz 31.05.2009 10:37

Цитата:

Сообщение от sVs (Сообщение 463377)
Все-таки, SOAP наверное был бы более удобен в API, чем XML-RPC:
документированность в wsdl - самодостаточная, все типы и структуры - описаны,
при расширении функционала - всем сразу видно, что и как поменялось,
да и с обработкой ошибок - значительно лучше дело обстоит.
(Просто мысли вслух)

Согласен. Но сапа была первая по АПИ, чем другие биржи. поэтому наверно так.

MVH 31.05.2009 15:20

Цитата:

Сообщение от MVH (Сообщение 462976)
По всей видимости, это не отличие в форматах, а 2 совершенно разных сообщения. Нашёл оба в обоих интерфейсах. Только не пойму в чём разница.

Понял в чём разница:.
Оптимизатор добавил сайт в BL - это если оптимизатор отказался от ссылки.
Вебмастер добавил домен * в BL - это если я отказался от подтверждения заявки с занесением в BL или добавил домен в BL (и ссылка автоматом снимается).

Gifts 01.06.2009 20:08

SOAP утяжелит систему, да и сервер сапы поддерживает интроспекцию (например можно получить список всех поддерживаемых методов), но хелп для каждого метода не вписан(

Поэтому два вопроса - когда будут документированы все функции? И будет ли возможность запросить актуальный хелп по каждому методу сразу через XML-RPC?

З.Ы. добавьте, плиз, возможность отклонять заявки на размещение ссылок ^^

AlienZzzz 01.06.2009 20:12

Цитата:

Сообщение от Gifts (Сообщение 464663)
SOAP утяжелит систему, да и сервер сапы поддерживает интроспекцию (например можно получить список всех поддерживаемых методов), но хелп для каждого метода не вписан(

Поэтому два вопроса - когда будут документированы все функции? И будет ли возможность запросить актуальный хелп по каждому методу сразу через XML-RPC?

З.Ы. добавьте, плиз, возможность отклонять заявки на размещение ссылок ^^

я работал как с тем и с другим.

Это же по сути все к одному к XML, что там хмл парсить , что там.

dradgo 02.06.2009 12:07

Цитата:

Сообщение от AlienZzzz (Сообщение 464668)
я работал как с тем и с другим.

Это же по сути все к одному к XML, что там хмл парсить , что там.

Тут я позволю с этим не согласиться для SOAP в Java реализована намного более качественная поддержка и ни в том ни в другом случае XML парсить не надо.
Вопрос только в удобстве использования. По-моему опыту SOAP более удобен именно из за дополнительных библиотек. Как насчет поддержки его в PHP я честно не знаю.

MVH 02.06.2009 22:47

Цитата:

Сообщение от dradgo (Сообщение 465191)
Тут я позволю с этим не согласиться для SOAP в Java реализована намного более качественная поддержка и ни в том ни в другом случае XML парсить не надо.

XML парсить надо будет в обоих случаях, т.к. данные от сервера приходят в формате XML. Может Вы хотели сказать, что там парсер SOAP там реализован на более низком уровне, а не в виде библиотеки, написанной на самой Java и соответственно работает намного быстрее?

Добавлено через 3 минуты
Просьба к разработчикам в извещениях для вебмастеров в отдельном поле сохранять цену, по которой покупалась ссылка, т.к. без неё проблематично собирать полную статистику, которая очень нужна. Цена нужна в извещениях о новой заявке на размещение ссылки и в извещениях об отмене размещения ссылки.

А в sape.get_site_pages сделать постраничное чтение или фильтр выбора нужных страниц.

dradgo 03.06.2009 01:38

Ну вообще в Java, данные автоматически мапируются на структуры.
Т.е. если в XML пришел int или i4 я получу тип int на выходе.
Если есть struct то получу Map и т.д.
Т.е. по сути получается прозрачный мост для вызова данных.
SOAP поддерживает более сложные объекты просто там можно было бы создать свои типы и они бы сами мапировались в запрос.

MVH 03.06.2009 18:52

2 часа потратил, что бы понять почему у меня не сходятся данные статистики. В итоге оказалось, что для извещений "Размещение на странице * ссылки * на URL * утверждено хозяином площадки и оптимизатором (АВТО)." возвращается неверный тип (25, вместо 24, указанного в документации). Как же мне надоело изучать API сапы экспериментальным путём.:mad:

pp7 04.06.2009 21:41

Цитата:

Сообщение от pp7 (Сообщение 447554)
Граждане, а как получить количество закупленных ссылок и сумму для определенного АВТОфильтра?
Функция sape.get_filters_auto возращает данные по автофильтрам, но не возвращает количество закупленных по ним ссылок и сумму. Хотя было бы логичнее, чтобы там были эти данные.

Что можно сделать? Как посчитать количество купленных ссылок по автофильтру?
В интерфейсе sape.ru это же есть...

я в растерянности. Help =)

По этому вопросы есть мысли?

seogod 06.06.2009 22:56

Цитата:

Сообщение от Avelon (Сообщение 462953)
обязательно учтем пожелания. на следующей неделе заставлю проштудировать программистов все посты за последнее время

неделя сегодня кончиться.
какие ни будь пожелания были приняты к вниманию?
и сроки реализации озвучьте если не секрет.
Благодарю за внимание.


Часовой пояс GMT +3, время: 07:56.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.