rennokki / reddit-json-api
Reddit JSON API 提供了一种简单快捷的方法来获取子版块数据。
2.5.0
2023-04-05 16:00 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^6.5|^7.0
- illuminate/support: ^9.35|^10.5
Requires (Dev)
- mockery/mockery: ^1.5
- orchestra/testbench: ^7.23|^8.1
- phpunit/phpunit: ^9.5.25
This package is auto-updated.
Last update: 2024-09-11 02:29:43 UTC
README
Reddit JSON API 是一个用于处理公共子版块 JSON 信息的 PHP 包装器。
🚀 安装
您可以通过 composer 安装此软件包
composer require rennokki/reddit-json-api
🙌 使用方法
use Rennokki\RedditApi\Reddit; $app = Reddit::app( 'renoki-co/reddit-json-api', '2.0', 'web', 'someusername' ); $subreddit = Reddit::subreddit( 'funny', // subreddit name $app ); $posts = $subreddit->get(); foreach ($posts as $post) { $id = $post['id']; }
在获取帖子时,结果将包装在 Rennokki\RedditApi\RedditList
类中。该类基于 Laravel Collection,您可以在其上更容易地使用管道操作。请参阅Laravel Collections 文档。
分页
为了分页,您应从之前的 $posts
中调用 nextPage()
$subreddit = Reddit::subreddit('funny', $app); $posts = $subreddit->get(); $nextPageOfPosts = $posts->nextPage();
排序
Reddit 允许按帖子类型排序。当前使用的有
public static $sorts = [ 'hot', 'new', 'controversial', 'top', 'rising', ];
要应用排序,您应该调用 sort()
$subreddit = Reddit::subreddit('funny', $app); $subreddit->sort('top');
时间过滤
与排序相同,时间过滤器也很少
public static $times = [ 'hour', 'day', 'week', 'month', 'year', 'all', ];
$subreddit = Reddit::subreddit('funny', $app); // Top, all time sorting. $subreddit ->sort('top') ->time('all');
限制
默认情况下,每次调用都返回 20
个帖子。
$subreddit = Reddit::subreddit('funny', $app); $subreddit->setLimit(100);
调试
如果您想检查正在调用的 URL,您可以这样做
$subreddit = Reddit::subreddit('funny', $app); $subreddit ->setLimit(30) ->sort('top') ->time('week'); $url = $subreddit->getCallableUrl();
🐛 测试
vendor/bin/phpunit
🤝 贡献
请参阅CONTRIBUTING 了解详情。
🔒 安全性
如果您发现任何安全相关的问题,请通过电子邮件alex@renoki.org联系,而不是使用问题跟踪器。