snlbaral/reddit-php

Reddit API 的 PHP 库。

0.2 2021-06-05 06:38 UTC

This package is auto-updated.

Last update: 2024-09-05 13:54:56 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

这是一个开源库,允许 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 开发和维护。