snlbaral / reddit-php
Reddit API 的 PHP 库。
0.2
2021-06-05 06:38 UTC
Requires
- guzzlehttp/guzzle: ^7.2
README
这是一个开源库,允许 PHP 应用程序无需 OAuth 即可编程式地与 Reddit API 交互。
要求
使用此库需要满足以下条件
- [Composer] 或手动安装
composer.json中提到的依赖项。
安装
在 PHP 中安装该库的推荐方法是使用以下方法
composer require snlbaral/reddit-php
用法
初始化
require 'vendor/autoload.php'; use Snlbaral\Reddit\Reddit; $reddit = new Reddit();
获取子版块的帖子
// getPosts() @params $subreddit_name, $token (optional), $dist (optional), $sort (optional) $posts = $reddit->getPosts('subreddit_name'); // returns array of posts, next page token, dist, sorting method, subreddit name // print_r($posts); // To Get next page/thread posts use following: $next_page = $reddit->getPosts('subreddit_name', $posts['token']); // returns array of next page/thread posts, next page token, dist, sorting method, subreddit name
获取子版块信息
$subreddit_info = $reddit->getInfo('subreddit_name');
查看/获取单个帖子信息/详情页面
$postId = 'postId or token'; $post = $reddit->viewPost($postId);
获取用户概览页面
// userOverview() @params $username, $token (optional), $dist (optional), $sort (optional) $overview = $reddit->userOverview('username'); // returns array of user's posts, comments, next page token, dist, sorting method, username // To Get next page/thread posts and comments of user, use following $next_page_overview = $reddit->userOverview('username', $overview['token']);
获取用户帖子页面
// userPosts() @params $username, $token (optional), $dist (optional), $sort (optional) $user_posts = $reddit->userPosts('username'); // returns array of user's posts next page token, dist, sorting method, username // To Get next page/thread posts of user, use following $next_page_user_posts = $reddit->userPosts('username', $user_posts['token']);
获取用户评论页面
// userComments() @params $username, $token (optional), $dist (optional), $sort (optional) $comments = $reddit->userComments('username'); // returns array of user's comments, next page token, dist, sorting method, username // To Get next page/thread comments of user, use following $next_page_comments = $reddit->userComments('username', $comments['token']);
从子版块下载媒体文件
// downloadMediasBySub() @params $subreddit_name, $token (optional), $dist (optional), $sort (optional), $dir (optional) $downloads = $reddit->downloadMediasBySub('subreddit_name'); // Downloads All Media Files from first page of subreddit using async, saves in $dir location // returns array of next page token, dist, sorting method and subreddit name // To download next page/thread media files, use following $next_page_downloads = $reddit->downloadMediasBySub('subreddit_name', $downloads['token']); // Downloads All Media Files from next page of subreddit using async, saves in $dir location // returns array of next page token, dist, sorting method and subreddit name
更多可用方法
parseMediaByPosts($posts); //$posts array of posts from getPosts() downloadMediasByPosts($posts); //$posts array of posts from getPosts() parseMedia($media); //each $posts has media loop $posts and pass $post['media'];
Example.php
try { $downloads = $reddit->downloadMediasBySub('subreddit_name', false, 25, 'new', 'mydownloads'); print_r($downloads); //echo $downloads['token']; } catch (Exception $e) { if($e->getResponse()) { $response = $e->getResponse(); $responseBodyAsString = $response->getBody()->getContents(); var_dump($responseBodyAsString); } else { var_dump($e); } }
许可证
此 PHP 库受 3-Clause BSD 许可证 的许可。
致谢
此 PHP 库由 Sunil Baral 开发和维护。