2017 © Pedro Peláez
 

library habrahabr_api

Официальный клиент для работы с API сайтов habrahabr.ru и geektimes.ru

image

tmtm/habrahabr_api

Официальный клиент для работы с API сайтов habrahabr.ru и geektimes.ru

  • Monday, November 21, 2016
  • by Rpsl
  • Repository
  • 14 Watchers
  • 77 Stars
  • 70 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 9 Forks
  • 2 Open issues
  • 15 Versions
  • 9 % Grown

The README.md

Habrahabr Api Client

Build Status Latest Stable Version License Code Coverage Scrutinizer Code Quality, (*1)

Хабрахабр - самое крупное в Рунете сообщество людей, занятых в индустрии высоких технологий. Уникальная аудитория, свежая информация, конструктивное общение и коллективное творчество - всё это делает Хабрахабр самым оригинальным IT-проектом в России., (*2)

Установка

Через composer:

$ composer require tmtm/habrahabr_api

или добавить, (*3)

"tmtm/habrahabr_api": "0.1.*"

в секцию require файла composer.json., (*4)

Быстрый старт

Перед началом работы с API Хабрахабра потребуется пройти несколько несложных этапов., (*5)

  1. Получение идентификатора приложения, (*6)

    Воспользовавшись этой формой на Хабрахабре, нужно кратко описать суть нового приложения и цель, для которой ему нужен API., (*7)

    Через некоторое время будет получен идентификатор и секрет нового приложения. Держите секрет в секрете и никому его не давайте!, (*8)

  2. Получение токена пользователя, (*9)

    Каждое приложение может работать с API Хабра только от имени установившего его пользователя., (*10)

    Для получения токена можно воспользоваться следующим простым способом. Перейдите по следующей ссылке, (*11)

    https://habrahabr.ru/auth/o/login/?client_id=КЛИЕНТ&response_type=token&redirect_uri=САЙТ, (*12)

    поставив адрес сайта приложения вместо САЙТ и полученный на первом шаге идентификатор вместо КЛИЕНТ., (*13)

    После нажатия кнопки "Разрешить", Хабр выполнит перенаправление на САЙТ, добавив в конец адреса строку #token=..., которая и будет содержать требуемый токен., (*14)

  3. Создание тестового приложения, (*15)

    Дошедший до этого шага ужее имеет всю мощь API Хабрахабра. Теперь самое время воспользоваться библиотеку. Для начала инициализируем адаптер:, (*16)

    $adapter = new \Habrahabr\Api\HttpAdapter\CurlAdapter();
    $adapter->setEndpoint('API_ENDPOINT');
    $adapter->setToken('OAUTH_TOKEN');
    $adapter->setClient('OAUTH_CLIENT');
    
    $client = new Habrahabr\Api\Client($adapter);
    # Доступ к ресурсу может быть получен через метод состоящий из `get` и названия ресурса
    $User = $client->getUserResource()->getUser('me');
    

Описание API ресурсов и методы

  • CommentsResource - Ресурс работы с комментариями, (*17)

    • getCommentsForPost($post_id) - Возвращает список комментариев к посту по номеру
    • postComment($post_id, $text, $comment_id = 0) - Добавление комментария к посту по номеру
    • votePlus($comment_id) - Положительное голосование за комментарий
    • voteMinus($comment_id) - Отрицательное голосование за комментарий
  • CompanyResource - Ресурс работы с компаниями, (*18)

    • getCompanyPosts($alias, $page = 1) - Возвращает посты компании по алиасу компании
    • getCompanyInfo($alias) - Возвращает профиль компании по алиасу компании
    • getList($page = 1) - Возвращает список компаний
  • FeedResource - Ресурс работы с "основной" лентой постов, (*19)

    • getFeedHabred($page = 1) - Возвращает "Захабренные" посты из "основной" лентой постов
    • getFeedUnhabred($page = 1) - Возвращает "Отхабренные" посты из "основной" лентой постов
    • getFeedNew($page = 1) - Возвращает "Новые" посты из "основной" лентой постов
  • FlowResource - Ресурс работы с потоками, (*20)

    • getFlows() - Возвращает список потоков
    • getFeedInteresting($alias, $page = 1) - Возвращает "Интересные" посты из потока
    • getFeedAll($alias, $page = 1) - Возвращает "Все" посты посты из потока
    • getFeedBest($alias, $page = 1) - Возвращает "Лучшие" посты из потока
  • HubResource - Ресурс работы с хабами, (*21)

    • getHubInfo($alias) - Возвращает информацию о хабе по алиасу
    • getFeedHabred($alias, $page = 1) - Возвращает "Захабренные" посты связаные с хабом
    • getFeedUnhabred($alias, $page = 1) - Возвращает "Отхабренные" посты связаные с хабом
    • getFeedNew($alias, $page = 1) - Возвращает "Новые" посты связаные с хабом
    • getHubList($page = 1) - Возвращает список хабов
    • subscribeHub($alias) - Подписаться на хаб
    • unsubscribeHub($alias) - Отписаться от хаба
  • PostResource - Ресурс работы с постами, (*22)

    • getPost($post_id) - Возвращает пост по номеру
    • getMeta($posts_id) - Получить мета-информацию постов (не более 30 постов за раз)
    • votePlus($post_id) - Положительное голосование за пост (Этот метод может быть предоставлен дополнительно, по запросу)
    • voteMinus($post_id) - Отрицательное голосование за пост (Этот метод может быть предоставлен дополнительно, по запросу)
    • voteNeutral($post_id) - Нейтральное голосование за пост (Этот метод может быть предоставлен дополнительно, по запросу)
    • addPostToFavorite($post_id) - Добавить пост в избранное
    • removePostFromFavorite($post_id) - Удалить пост из избранного
    • increaseCount($post_id) - Увеличить счетчик просмотров поста
  • PollResource - Ресурс работы с опросами, (*23)

    • getPoll($poll_id) - Возвращает опрос по номеру
    • vote($poll_id, $votes = []) - Голосование в опросе за один или несколько варинатов ответа (Этот метод может быть предоставлен дополнительно, по запросу)
  • SearchResource - Ресурс работы с поиском, (*24)

    • searchPosts($q, $page = 1) - Поиск произвольного запроса по постам
    • searchUsers($q, $page = 1) - Поиск произвольного запроса по пользователям
    • searchHubs($q) - Поиск произвольного запроса по хабам
  • TrackerResource - Ресурс работы с трекером, (*25)

    • push($title, $text) - Отправить сообщение в трекер на вкладку "Приложения"
    • getCounters() - Возвращает счетчики новых сообщений из трекера, элементы не отмечаются как просмотренные
    • getPostsFeed() - Возвращает список постов из трекера,, элементы не отмечаются как просмотренные
    • getSubscribersFeed() - Возвращает список подписчиков из трекера, элементы не отмечаются как просмотренные
    • getMentions() - Возвращает список упоминаний из трекера, элементы не отмечаются как просмотренные
    • getAppsFeed() - Возвращает список сообщений приложений из трекера, элементы не отмечаются как просмотренные
  • UserResource - Ресурс работы с пользователями, (*26)

    • getUserCurrent() - Возвращает профиль пользователя API ключа
    • getUser($login) - Возвращает профиль пользователя по логину
    • getUsersList() - Возвращает список пользователей
    • getUserComments($login, $page = 1) - Возвращает комментарии пользователя по логину
    • getUserPosts($login, $page = 1) - Возвращает посты пользователя по логину
    • getUserHubs($login) - Возвращает хабы на которые подписан пользователь
    • getUserCompanies($login) - Возвращает компании в которых работает пользователь
    • getUserFollowers($login, $page = 1) - Возвращает список подписчиков пользователя по логину
    • getUserFollowed($login, $page = 1) - Возвращает список на кого подписан пользователь по логину
    • voteKarmaPlus($login) - Плюсовать карму пользователя по логину (Этот метод может быть предоставлен дополнительно, по запросу)
    • voteKarmaMinus($login) - Минусовать карму пользователя по логину (Этот метод может быть предоставлен дополнительно, по запросу)
    • getUserFavoritesPost($login, $page = 1) - Возвращает список "избранных" постов пользователя по логину
    • getUserFavoritesComments($login, $page = 1) - Возвращает список "избранных" комментариев пользователя по логину
  • SettingsResource - Ресурс работы с настройками профиля, (*27)

    • acceptAgreement() - Принять соглашение

Тестирование

Для начала установить --dev зависимости. После чего запустить:, (*28)

$ vendor/bin/phpunit

Для проведения тестирования на рабочем API, необходимо скопировать файл phpunit.xml.dist в phpunit.xml И добавить в него секцию содержащую ключи для работы с API:, (*29)

<php>
    <env name="ENDPOINT" value="https://api.habrahabr.ru/v1"/>
    <env name="TOKEN" value="ВАШ_OAUTH_TOKEN"/>
    <env name="CLIENT" value="ВАШ_OAUTH_CLIENT"/>
</php>

Лицензия

Библиотека доступна на условиях лицензии MIT: http://www.opensource.org/licenses/mit-license.php, (*30)

Альтернативные адаптеры:

Реализации на других языках:

The Versions

21/11 2016

dev-master

9999999-dev

Официальный клиент для работы с API сайтов habrahabr.ru и geektimes.ru

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar dotzero
by Avatar Rpsl

api habrahabr habr tmtm thematic media geektimes

21/11 2016

v0.1.5

0.1.5.0

Официальный клиент для работы с API сайтов habrahabr.ru и geektimes.ru

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar dotzero
by Avatar Rpsl

api habrahabr habr tmtm thematic media geektimes

08/11 2016

v0.1.4

0.1.4.0

Provides an interface to the API at habrahabr.ru

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar dotzero
by Avatar Rpsl

api habrahabr habr tmtm thematic media

22/06 2016

v0.1.3

0.1.3.0

Provides an interface to the API at habrahabr.ru

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar dotzero
by Avatar Rpsl

api habrahabr habr tmtm thematic media

06/06 2016

v0.1.2

0.1.2.0

Provides an interface to the API at habrahabr.ru

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar dotzero
by Avatar Rpsl

api habrahabr habr tmtm thematic media

17/05 2016

v0.1.1

0.1.1.0

Provides an interface to the API at habrahabr.ru

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar dotzero
by Avatar Rpsl

api habrahabr habr tmtm thematic media

13/05 2016

v0.1.0

0.1.0.0

Provides an interface to the API at habrahabr.ru

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar dotzero
by Avatar Rpsl

api habrahabr habr tmtm thematic media

16/04 2016

v0.0.8

0.0.8.0

Provides an interface to the API at habrahabr.ru

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar dotzero
by Avatar Rpsl

api habrahabr habr tmtm thematic media

16/04 2014

v0.0.7

0.0.7.0

Official habrahabr.ru api client

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *
  • ext-json *

 

The Development Requires

by Avatar Rpsl

habrahabr habr tmtm thematic media

07/04 2014

v0.0.6.2

0.0.6.2

Official habrahabr.ru api client

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Avatar Rpsl

habrahabr habr tmtm thematic media

14/11 2013

v0.0.6.1

0.0.6.1

Official habrahabr.ru api client

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

by Avatar Rpsl

habrahabr habr tmtm thematic media

14/11 2013

v0.0.6

0.0.6.0

write description here

  Sources   Download

The Requires

  • php >=5.4.0

 

by Avatar Rpsl

08/11 2013

v0.0.5

0.0.5.0

write description here

  Sources   Download

The Requires

  • php >=5.4.0

 

by Avatar Rpsl

11/10 2013

v0.0.4

0.0.4.0

write description here

  Sources   Download

The Requires

  • php >=5.4.0

 

by Avatar Rpsl

03/10 2013

v0.0.3

0.0.3.0

write description here

  Sources   Download

The Requires

  • php >=5.4.0

 

by Avatar Rpsl