- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Мой первый топик на форуме, пинайте нестрого, пожалуйста :) Поиском подобное не нашёл.
Пост предназначен для тех, кто "оптимизатор" на сапе и кому нужно быстро написать обработчик апи на php, с реальными примерами, при этом совершенно не вдаваясь в подробности. Тем, кто хочет покопаться, пост будет удобен как трамплин :)
Итак. Некоторое время назад мне понадобилось анализировать ссылки для своих проектов, купленные на Sape. Так как у Sape есть вполне приличный API (http://www.sape.ru/api_xmlrpc.php?v=extended), решил использовать его, а не парсить страницы. Забегая вперёд, скажу, что для моих целей его хватило полностью.
Долго искал готовые решения, но ничего не нашёл и написал своё (правда, используя чужие советы, найденные в интернете).
Для того, чтобы работать с API, необходима библиотека, понимающая XML-RPC (по большому счёту, вам ничего и не нужно знать об этой аббревиатуре, так как в итоге вы будете получать при запросе к сапе обычные php-массивы). Я выбрал самую легкую и простую XML-RPC for PHP - http://phpxmlrpc.sourceforge.net/.
Скачиваем архив по ссылке и распаковываем на хостинг.
Затем просто начинаем с помощью библиотеки работать с Sape.
Подключаем библиотеку (всё общение с сапой и результаты будут в уникоде):
Создаём объект:
Если хотим видеть, что будет отвечать Сапа в ответ на наши запросы, раскомментируем строку:
Логинимся в сапу:
Смотрим на предпоследнюю строчку предыдущего кода: здесь указывается, что авторизация в сапу будет зашифрованным паролем, а не открытым текстом.
Я гоняю пароли между моим сервером и сапой только в md5, чего и вам советую. Для этого с помощью простецкого скрипта на php получаем из строки пароля его md5-хеш
и загоняем его в переменную $password.
Есть одна тонкость: иногда сапе плохо и она может не выполнить ваш запрос. Для победы этой проблемы пробуем при ошибочном результате пнуть её три раза (вероятность успеха повышается):
Залогинились, едем дальше. Один тонкий момент - нужно при любом запросе к сапе передавать куки, которые были получены при логине. У меня в коде это есть, можно не париться. Но всё-равно, учтите.
Сохраняем куки, полученные от Сапы:
Теперь я расскажу о использовании некоторых функций API Сапы, например получении или удалении списка проектов, ваших урлов в проектах, ссылок для этих урлов.
Получаем все проекты вашего аккаунта:
В массиве $projects будут все ваши проекты. Какие внутри поля - можно посмотреть в документации API Сапы или сделать var_dump($projects);
Как получить список ваших урлов внутри отдельного проекта (в примере - для первого в списке проекта):
В $project_urls теперь лежат все урлы для выбранного проекта.
Как теперь получить самое вкусное - ссылки для вашего сайта, которые вы напокупали в Сапе:
В массиве $url_links будут все купленные ссылки для выбранного сайта одного из выбранных проектов.
Отдельного замечания стоит переменная $page - номер страницы результатов из списка ссылок. Можно передавать ноль и на сколько помню, вернется результат со всеми ссылками, но лучше так не делать, а запрашивать небольшими порциями. Так надежнее. В одной странице, если правильно помню, выдаётся 500 результатов.
Как удалить пачку купленных ссылок:
Весь приведённый код - реальный, я только убрал лишнее типа сохранения в базу и поменял имена переменных и пути, надеюсь, нигде не опечатался :)
А как использовать полученные знания - думаю, вы догадаетесь сами.
Если что-то осталось непонятным или неясно, как использовать какую-то функцию или вы заметили ошибки - спрашивайте и комментируйте.
Спасибо за внимание.
... sape.placements_delete ...
Странно, но это не описано на сайте сапы http://xmlrpc.sape.ru/api_xmlrpc.php
Где об этом методе написано? Есть какие-то скрытые методы?
Это написано в расширенном варианте API, ссылка в начале поста - http://www.sape.ru/api_xmlrpc.php?v=extended
это закрытый тестовый интерфейс с расширенными функциями, вроде как его уже прикрыли для масс после слишком интенсивного пользования для парсинга базы. На форуме сапы писали что функции теперь доступны только ограниченому числу пользователей.
эвона как
я использую расширенный интерфейс довольно давно и ничего не делал для того, чтобы попасть в это ограниченное число пользователей
с кукс что-то намудрили. авторизация работает. а остальные функции пишут "Please, login"
надо было просто убрать path и domain
Привет. Ознакомился с твоими примерчиками. Спасибо, помогло.
Написал webservice на .NET. для работы с этой системой. Заметил одну странность при работе с API САПЫ.
При вызове метода, например, по возврату наименований всех проектов (sape.get_projects) при вводе false получаю список 56-ти проектов. В то время, как через Web интерфейс вижу те, котороые в работе и их 25.
Вот интересно, какого ... Sape мне выдает удаленные ранее проекты?
И еще одна неприятная деталь:
- при получении url проектов (sape.get_urls) выскакивает ошибка 500 - "Неправильный ID проекта". Прошелся отладчиком - ID все те, какие в SAPE стоят. И эти проекты в работе у оптимизатора находятся.
Откуда такие глюки, как думаешь?
liho26, перепроверь несколько раз, если все так же - напишы на форуме сапы, вроде адекватно реагируют.
liho26, перепроверь несколько раз, если все так же - напишы на форуме сапы, вроде адекватно реагируют.
Уже который день наблюдаю. Сегодня написал на форуме SAPE. Пока тишина в ответ....
При вызове метода, например, по возврату наименований всех проектов (sape.get_projects) при вводе false получаю список 56-ти проектов. В то время, как через Web интерфейс вижу те, котороые в работе и их 25.
Вот интересно, какого ... Sape мне выдает удаленные ранее проекты?
сейчас сапа опять лежит, не могу проверить. Надо посмотреть параметры, кажется, у этой функции есть параметр, отвечающий за "невыдачу" в апи удаленных проектов (может быть и в другой функции, повторюсь - не проверить прямо сейчас)
И еще одна неприятная деталь:
- при получении url проектов (sape.get_urls) выскакивает ошибка 500 - "Неправильный ID проекта". Прошелся отладчиком - ID все те, какие в SAPE стоят. И эти проекты в работе у оптимизатора находятся.
/?
Откуда такие глюки, как думаешь?
а если попробовать пхпшным кодом с упомянутой в посте библиотекой? Возможно, обрабочик XML в дотнетовском приложении общается с сапой не так, как она того ждет.
Уже который день наблюдаю. Сегодня написал на форуме SAPE. Пока тишина в ответ....
Все-же предполагаю, что надо убедиться в верности работы с XML со стороны дотнетовской реализации (никогда не пробовал, могу ошибаться). На моих текущих сервисах описанные в посте методы работают по прежнему.
elkini добавил 25.07.2009 в 03:55
Сапа поднялась, посмотрел в доки.
Да, точно, надо указывать явно, показывать удаленные проекты или нет.
а если попробовать пхпшным кодом с упомянутой в посте библиотекой? Возможно, обрабочик XML в дотнетовском приложении общается с сапой не так, как она того ждет.
Все-же предполагаю, что надо убедиться в верности работы с XML со стороны дотнетовской реализации (никогда не пробовал, могу ошибаться). На моих текущих сервисах описанные в посте методы работают по прежнему.
elkini добавил 25.07.2009 в 03:55
Сапа поднялась, посмотрел в доки.
Да, точно, надо указывать явно, показывать удаленные проекты или нет.
Вся прелесть в том, что указываю передаваемые параметры согласно документации. Если с SAPE обращаться не так, как она того ждет - она вообще ничего не возвращает. Матерится ошибками о том, что "такая функция на сервере не существует".
PHP-шным кодом проверить не смогу. У меня Winforms (Читай - windows приложение) и webservice. Короче, трехзвенка.
Что касается XML-RPC, у .NET нет своих встроенных механизмов работы по этому протоколу (Microsoft продвигает SOAP). Использую библиотеку, разработанную Charles Cook (Чарли Куком). Эта библиотеа реализует все стандарты передачи, приема и обработки данных XML-RPC. На этой библиотеке работают почти все разработчики .NET
Еще одно наблюдение: удаленные ранее проекты SAPE стала возвращать после глобального сбоя, который был со среды на четверг. До этого все работало нормально.
Ну и относительно "правильности" работы XML в .NET. Поверь, работает корректно и правильно. Все передаваемые и принимаемые данные отслеживаю через HTTPAnalyzer. Приходит тот набор данных, который должен приходить :)
Ну и в догонку. SAPE всегда отключается в 3 часа ночи. На сколько часов - не знаю. Я до 5 однажды ждал - так и не заоаботала...
С уважением...
liho26 добавил 25.07.2009 в 10:42
Да, и вот что еще хотел спросить. Какой функцией можно посмотреть данные по новым заявкам?