tmtm/habrahabr_api

此包已被废弃且不再维护。未建议替代包。

habrahabr.ru 和 geektimes.ru API 的官方客户端

v0.1.5 2016-11-21 09:47 UTC

This package is not auto-updated.

Last update: 2024-07-26 19:56:30 UTC


README

Build Status Latest Stable Version License Code Coverage Scrutinizer Code Quality

哈勃罗布斯是俄罗斯最大的互联网技术社区。独特的观众群体、新鲜的信息、建设性的交流和集体创作,使哈勃罗布斯成为俄罗斯最具原创性的IT项目。

安装

通过 composer

$ composer require tmtm/habrahabr_api

或者添加

"tmtm/habrahabr_api": "0.1.*"

到 composer.json 文件的 require 部分。

快速入门

在开始使用哈勃罗布斯API之前,需要完成几个简单的步骤。

  1. 获取应用程序标识符

    使用 此表单 在哈勃罗布斯上简要描述新应用程序的目的和所需API的目的。

    一段时间后,将获得新应用程序的标识符和密钥。 请保密密钥,不要将其泄露给任何人!

  2. 获取用户令牌

    每个应用程序都只能以安装它的用户的身份与哈勃罗布斯API交互。

    可以通过以下简单方法获取令牌。点击以下链接

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

    将网站地址替换为 САЙТ,将第一步中获得的标识符替换为 КЛИЕНТ

    点击“允许”按钮后,哈勃罗布斯将重定向到 САЙТ,并在地址末尾添加字符串 #token=...,其中将包含所需的令牌。

  3. 创建测试应用程序

    到达此步骤的用户已经拥有了哈勃罗布斯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

替代适配器

其他语言的实现