glamorous / tmdb-php-api
用于使用 TMDb (themoviedb.org) API 的 PHP 类。由于 IMDB 没有API,我们提供了这个PHP5类。接收电影或演员的所有信息非常简单。无需抓取。
Requires
- php: >=5.3.0
- ext-gd: *
This package is not auto-updated.
Last update: 2022-02-01 12:24:58 UTC
README
!! 重要 !! 此类不再维护,因为时间和更好的替代方案支持TMDb API。
好替代方案
为什么是这个类
此类始于旧API版本(2.1),因为当时缺乏通用的最新PHP TMDb类。制作此类的第二个原因非常简单:我喜欢他们在 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])
电影
- 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()
- getTopRatedMovies([$page], [$lang])
- getPopularMovies([$page], [$lang])
- getUpcomingMovies([$page], [$lang])
- getNowPlayingMovies([$page], [$lang])
- getSimularMovies($id, [$page], [$lang])
- getChangedMovies([$page], [$start_date], [$end_date])
- getMovieChanges($id)
人物
- searchPerson($query, [$page], [$adult])
- getPerson($id)
- getPersonCredits($id, [$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文档关于这一点非常重要。存在必要的函数来检索有效的令牌和session_id(更多信息请参阅TMDb知识库)
<?php
// After initialize the class
// First request a token from API
$token = $tmdb->getAuthToken();
?>
然后您需要将用户重定向到TMDb网站,使用从getAuthToken方法接收到的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.5.1 - 2012年11月16日
TMDb 1.5.0 - 2012年11月16日
- [feature] 支持 SSL
TMDb 1.4.0 - 2012年10月11日
- [feature] 新增检索电影变更的方法:
getMovieChanges
- [feature] 新增检索所有变更电影的方法:
getChangedMovies
- [feature] 新增检索人物变更的方法:
getPersonChanges
- [feature] 新增检索所有变更人物的方法:
getChangedPersons
TMDb 1.3.0 - 2012年8月22日
- [feature] 从方法获取 ETag 以跟踪内容状态,更多信息请访问 TMDb 知识库文章
TMDb 1.2.0 - 2012年8月21日
- [bug][feature] 无法使用某些方法而不传递语言参数。现在您可以传递
FALSE
来检索所有结果,而无需考虑任何语言。
TMDb 1.1.1 - 2012年8月20日
- [bug] 删除了一些调试内容
TMDb 1.1.0 - 2012年8月12日
- [feature] 新增检索电影预告片的方法:
getMovieTrailers
在新API的第一个版本中已被遗忘(已关闭问题 #10)
TMDb 1.0.2 - 2012年8月7日
- [bug] 在某些最近的服务器上,
&
被替换为&
,因此向旧的Tomcat java服务器发送POST
请求不会被正确处理。(已关闭问题 #9)
TMDb 1.0.1 - 2012年8月1日
- [improvement]
addMovieRating
现在工作得更好,无论您传递什么,它都会被转换成0
或一个合理的浮点数。
TMDb 1.0.0 - 2012年7月30日
- 该类现在仅与 API v3 一起工作。
- API v3 中所有可用的方法都由 API 支持
- 旧变更日志(API v2)可在 github 上找到
处理错误
当类由于 CURL 请求或 TMDb-API 存在问题而出现错误时,此类会抛出 TMDbException。
许可证
此插件具有 BSD 许可证。您可以在类包中找到许可证,位于 license.txt 中