tmtm / habrahabr_api
habrahabr.ru 和 geektimes.ru API 的官方客户端
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.0.*
README
哈勃罗布斯是俄罗斯最大的互联网技术社区。独特的观众群体、新鲜的信息、建设性的交流和集体创作,使哈勃罗布斯成为俄罗斯最具原创性的IT项目。
安装
通过 composer
$ composer require tmtm/habrahabr_api
或者添加
"tmtm/habrahabr_api": "0.1.*"
到 composer.json 文件的 require
部分。
快速入门
在开始使用哈勃罗布斯API之前,需要完成几个简单的步骤。
-
获取应用程序标识符
使用 此表单 在哈勃罗布斯上简要描述新应用程序的目的和所需API的目的。
一段时间后,将获得新应用程序的标识符和密钥。 请保密密钥,不要将其泄露给任何人!
-
获取用户令牌
每个应用程序都只能以安装它的用户的身份与哈勃罗布斯API交互。
可以通过以下简单方法获取令牌。点击以下链接
https://habrahabr.ru/auth/o/login/?client_id=КЛИЕНТ&response_type=token&redirect_uri=САЙТ
将网站地址替换为
САЙТ
,将第一步中获得的标识符替换为КЛИЕНТ
。点击“允许”按钮后,哈勃罗布斯将重定向到
САЙТ
,并在地址末尾添加字符串#token=...
,其中将包含所需的令牌。 -
创建测试应用程序
到达此步骤的用户已经拥有了哈勃罗布斯API的全部功能。现在,我们可以使用库。首先,初始化适配器
$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
- 处理评论的资源getCommentsForPost($post_id)
- 根据编号返回帖子的评论列表postComment($post_id, $text, $comment_id = 0)
- 向帖子编号添加评论votePlus($comment_id)
- 对评论进行正面投票voteMinus($comment_id)
- 对评论进行负面投票
-
CompanyResource
- 处理公司的资源getCompanyPosts($alias, $page = 1)
- 根据公司别名返回公司帖子getCompanyInfo($alias)
- 根据公司别名返回公司简介getList($page = 1)
- 返回公司列表
-
FeedResource
- 处理“主要”帖子列表的资源getFeedHabred($page = 1)
- 从“主要”帖子列表中返回“被哈勃罗布斯”的帖子getFeedUnhabred($page = 1)
- 从“主要”帖子列表中返回“未被哈勃罗布斯”的帖子getFeedNew($page = 1)
- 从“主要”帖子列表中返回“新”帖子
-
FlowResource
- 处理流量的资源getFlows()
- 返回流列表getFeedInteresting($alias, $page = 1)
- 从流中返回“有趣”的帖子getFeedAll($alias, $page = 1)
- 从流中返回“所有”帖子getFeedBest($alias, $page = 1)
- 从流中返回“最佳”帖子
-
HubResource
- 处理哈勃罗布斯资源的资源getHubInfo($alias)
- 根据别名返回哈勃罗布斯信息getFeedHabred($alias, $page = 1)
- 返回与哈勃罗布斯相关的“被哈勃罗布斯”帖子getFeedUnhabred($alias, $page = 1)
- 返回与哈勃罗布斯相关的“未被哈勃罗布斯”帖子getFeedNew($alias, $page = 1)
- 返回与哈勃罗布斯相关的“新”帖子getHubList($page = 1)
- 返回哈勃罗布斯列表subscribeHub($alias)
- 订阅哈勃罗布斯unsubscribeHub($alias)
- 取消订阅哈勃罗布斯
-
PostResource
- 处理帖子的资源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
- 处理调查的资源getPoll($poll_id)
- 根据编号返回调查vote($poll_id, $votes = [])
- 为一个或多个答案投票给调查 (此方法可能额外提供,需请求)
-
SearchResource
- 处理搜索的资源searchPosts($q, $page = 1)
- 搜索帖子的任意查询searchUsers($q, $page = 1)
- 搜索用户的任意查询searchHubs($q)
- 搜索枢纽的任意查询
-
TrackerResource
- 处理跟踪器的资源push($title, $text)
- 向跟踪器发送消息到“应用程序”标签页getCounters()
- 返回跟踪器中的新消息计数器,元素不被标记为已阅读getPostsFeed()
- 返回跟踪器中的帖子列表,元素不被标记为已阅读getSubscribersFeed()
- 返回跟踪器中的订阅者列表,元素不被标记为已阅读getMentions()
- 返回跟踪器中的提及列表,元素不被标记为已阅读getAppsFeed()
- 返回跟踪器中的应用程序消息列表,元素不被标记为已阅读
-
UserResource
- 处理用户的资源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)
- 为用户登录名增加 Karma (此方法可能额外提供,需请求)voteKarmaMinus($login)
- 为用户登录名减少 Karma (此方法可能额外提供,需请求)getUserFavoritesPost($login, $page = 1)
- 返回用户登录名的“收藏”帖子列表getUserFavoritesComments($login, $page = 1)
- 返回用户登录名的“收藏”评论列表
-
SettingsResource
- 处理配置文件设置的资源acceptAgreement()
- 接受协议
测试
首先安装 --dev
依赖项。之后运行
$ vendor/bin/phpunit
为了在开发API上进行测试,需要将文件 phpunit.xml.dist
复制到 phpunit.xml
,并在其中添加包含API操作密钥的配置节
<php> <env name="ENDPOINT" value="https://api.habrahabr.ru/v1"/> <env name="TOKEN" value="ВАШ_OAUTH_TOKEN"/> <env name="CLIENT" value="ВАШ_OAUTH_CLIENT"/> </php>
许可证
此库可在MIT许可下使用:https://open-source.org.cn/licenses/mit-license.php
替代适配器
其他语言的实现
- Python: habrahabr-api-python
- Python: habrahabr-python 已弃用