jmartin / tmdb-php-api
一个用于抓取TMDb的PHP 5.3库。
Requires
- php: >=5.3.2
- ext-curl: *
This package is not auto-updated.
Last update: 2024-09-24 06:21:30 UTC
README
为什么这个类
这个类最初是从旧版API版本(2.1)开始的,因为当时没有通用的、最新的TMDb PHP类。制作这个类的第二个原因是很简单:我喜欢TMDb团队的工作。他们提供了一个伟大的API,让每个人都可以使用他们的数据库来制作酷炫的应用程序。现在有一个新的API v3,它也得到了支持。旧版本可以在github的另一个分支中找到。
要求
- PHP 5.2.x或更高版本
- cURL
- TMDb API密钥
可用方法
所有方法都列在这里,使用时请查看代码,一切都有文档说明。可选参数用方括号[]括起来。还可以查看TMDb文档,以更好地了解可能的方法。
集合
- getCollection($id, [$lang])
公司
- searchCompany($query, [$page])
- getMoviesByCompany($id, [$page], [$lang])
类型
- getGenres([$lang])
- getMoviesByGenre($id, [$page], [$lang])
电影和电视剧
- getTopRated([$page], [$type], [$lang])
- getPopular([$page], [$type], [$lang])
电影
- searchMovie($query, [$page], [$adult], [$lang])
- getMovie($id, [$lang])
- getMovieCast($id)
- getMovieImages($id, [$lang])
- getMovieKeywords($id)
- getMovieReleases($id)
- getMovieTitles($id, [$country])
- getMovieTrailers($id, [$lang])
- getMovieTranslations($id)
- getMoviesByCompany($id, [$page], [$lang])
- getMoviesByGenre($id, [$page], [$lang])
- getLatestMovie()
- getUpcomingMovies([$page], [$lang])
- getNowPlayingMovies([$page], [$lang])
- getSimilarMovies($id, [$page], [$lang])
- getChangedMovies([$page], [$start_date], [$end_date])
- getMovieChanges($id)
电视剧
- searchTV($query, [$page], [$air_date_year], [$lang])
- getTV[$id, [$lang])
- getTVSeason[$id, $season_id, [$lang])
- getTVSeasonCredits[$id, $season_id, [$lang])
- getTVSeasonImages[$id, $season_id, [$lang])
- getTVEpisode[$id, $episode_id, [$lang])
- getTVEpisodeCredits[$id, $episode_id, [$lang])
- getTVEpisodeImages[$id, $episode_id, [$lang])
人物
- searchPerson($query, [$page], [$adult])
- getPerson($id)
- getPersonCredits($id, [$type], [$lang])
- getPersonImages($id)
- getChangedPersons([$page], [$start_date], [$end_date])
- getPersonChanges($id)
身份验证
- getAuthToken()
- getAuthSession($token)
- setAuthSession($id)
账户
- addFavoriteMovie($account_id, $session_id, $movie_id, TRUE)
- addMovieRating($session_id, $movie_id, $value)
- addMovieToWatchlist($account_id, $session_id, $movie_id)
- getAccount($session_id)
- getAccountFavoriteMovies($account_id, $session_id, [$page], [$lang])
- getAccountRatedMovies($account_id, $session_id, [$page], [$lang])
- getAccountWatchlistMovies($account_id, $session_id, [$page], [$lang])
杂项
- getAvailableImageSizes($imagetype)
- getConfig()
- getConfiguration()
- getImageUrl($filepath, $imagetype, $size)
- getLang()
- setLang($languague)
- getVersion($uri)
如何使用
初始化类
<?php
include('TMDb.php');
// Default English language
$tmdb = new TMDb('API-key');
// Set-up the class with your own language
$tmdb_nl = new TMDb('API-key', 'nl');
// If you want to load the TMDb-config (default FALSE)
$tmdb_load_config = new TMDb('API-key', 'en', TRUE);
?>
身份验证
阅读TMDb文档关于这一点非常重要。有必需的方法来检索有效的token和session_id(更多信息请参考TMDb知识库)
<?php
// After initialize the class
// First request a token from API
$token = $tmdb->getAuthToken();
?>
然后,您必须将用户重定向到TMDb网站,并在从getAuthToken方法接收到的$token变量中找到Authentication-Callback,以便用户可以授权您的应用程序。
<?php
// Request valid session for that particular user from API
$session = $tmdb->getAuthSession();
?>
将特定用户的session_id安全存储,并用于认证调用。
如果您已保存session_id,则可以使用它(可选)为每个用户的每个认证请求设置它,或者您可以使用setAuthSession方法全局设置。
配置
API v3中的配置是一项新功能。它用于从TMDb检索信息,因此您只需请求一次。保存它(或缓存)并有时检索新版本是您的任务。
<?php
//Retrieve config with initialisation of the class
$tmdb = new TMDb('API-key', 'en', TRUE);
?>
<?php
//Retrieve (cached) config when the class is already initialised
$config = $tmdb->getConfig();
?>
<?php
//Retrieve config when the class is already initialised from TMDb (always new request)
$config = $tmdb->getConfiguration();
?>
图片
获取图片的方式与之前略有不同。您在请求中获取文件路径。要解析URL,您需要使用配置和一些额外的方法。
<?php
//Filepath retrieved from a method (Backdrop image)
$filepath = '/eJhymb0SiOd39L3BDe7aO7iQhQx.jpg';
//Get image URL for the backdrop image in its original size
$image_url = $tmdb->getImageUrl($filepath, TMDb::IMAGE_BACKDROP, 'original');
?>
现在有3种图像格式可用:TMDb::IMAGE_BACKDROP、TMDb::IMAGE_POSTER、TMDb::IMAGE_PROFILE。要获取特定图像类型的所有可用图像大小,可以使用getAvailableImageSizes方法。
<?php
//Get all possible image sizes for backdrop images.
$array_with_backdrop_sizes = $tmdb->getAvailableImageSizes(TMDb::IMAGE_BACKDROP);
?>
版本
API的新版本(v3)中没有特定方法来跟踪电影或个人的状态。如TMDb建议,您现在可以使用标题信息,特别是ETag来检查特定方法的内容状态。
<?php
//Just add some URI to the method to retrieve the ETag of the request.
$etag = $tmdb->getVersion('movie/550');
?>
HTTPS / SSL
API的新版本(v3)支持SSL。此类支持使用https。
<?php
//Just add a TMDb constant from the class when you initialize the class.
$tmdb = new TMDb('API-key', 'en', FALSE, TMDb::API_SCHEME_SSL);
?>
问题/错误
总是可能找到一些问题。如果您发现一个问题,请通过github上的问题跟踪器通知我们。请不要使用此功能来询问有关如何使用此类的问题。它简单明了,对任何具备基本PHP知识的人来说都容易理解。
变更日志
TMDb 1.6.1 - 2013年11月20日
- [新功能] 新增获取电影演职员表的方法:
getMovieCredits
TMDb 1.6.0 - 2013年11月5日
- [改进] 更新获取高分内容的方法。现在支持类型(电影或电视剧):
getTopRated - [改进] 更新获取热门内容的方法。现在支持类型(电影或电视剧):
getPopular - [改进] 更新获取个人演职员表的方法。现在支持类型(综合、电影或电视剧):
getPersonCredits - [新功能] 新增搜索电视剧的方法:
searchTV - [新功能] 新增获取电视剧的方法:
getTV - [新功能] 新增获取电视剧季的方法:
getTVSeason - [新功能] 新增获取电视剧季演职员表的方法:
getTVSeasonCredits - [新功能] 新增获取电视剧季图片的方法:
getTVSeasonImages - [新功能] 新增获取电视剧集的方法:
getTVEpisode - [新功能] 新增获取电视剧集演职员表的方法:
getTVEpisodeCredits - [新功能] 新增获取电视剧集图片的方法:
getTVEpisodeImages
TMDb 1.5.2 - 2013年4月9日
TMDb 1.5.1 - 2012年11月16日
TMDb 1.5.0 - 2012年11月16日
- [新功能] 支持SSL
TMDb 1.4.0 - 2012年10月11日
- [新功能] 新增获取电影更改的方法:
getMovieChanges - [新功能] 新增获取所有更改电影的方法:
getChangedMovies - 【功能】检索个人更改的新方法:
getPersonChanges - 【功能】检索所有更改的个人:
getChangedPersons
TMDb 1.3.0 - 22/08/2012
- 【功能】从方法中获取 ETag 以跟踪内容状态,更多信息请访问 TMDb 知识库文章
TMDb 1.2.0 - 21/08/2012
- 【bug】【功能】无法在没有语言参数的情况下使用某些方法。现在您可以传递
FALSE来获取所有结果,而不必考虑任何语言。
TMDb 1.1.1 - 20/08/2012
- 【bug】删除了一些调试内容
TMDb 1.1.0 - 12/08/2012
- 【功能】检索电影预告片的新方法:
getMovieTrailers在新 API 的首次发布中被遗忘(已关闭问题 #10)
TMDb 1.0.2 - 07/08/2012
- 【bug】在某些最近的服务器上,
&被替换为&,因此向旧 Tomcat java 服务器发出的POST请求不会得到适当处理。(已关闭问题 #9)
TMDb 1.0.1 - 01/08/2012
- 【改进】
addMovieRating现在工作得更好,无论您通过什么传递,它都已被转换为0或一个合理的浮点数。
TMDb 1.0.0 - 30/07/2012
- 该类现在仅与 API v3 一起使用。
- API v3 中所有可用的方法都由 API 支持
- 旧版本变更日志(API v2)可在 github 上找到
处理错误
当类中发生由 CURL 请求引起的错误或存在 TMDb-API 问题时,此类会抛出 TMDbException。
许可证
此插件具有 BSD 许可证。您可以在包含类的包中的 license.txt 文件中找到许可证。