jmartin/tmdb-php-api

该软件包最新版本(dev-master)没有可用的许可证信息。

一个用于抓取TMDb的PHP 5.3库。

dev-master 2014-10-16 16:12 UTC

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_BACKDROPTMDb::IMAGE_POSTERTMDb::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日

  • [新功能] 添加带有重试机制的请求限制处理。感谢github用户betonme。关闭问题#17

TMDb 1.5.1 - 2012年11月16日

  • [错误] getPersonCredits没有按正确的方式工作。感谢github用户caa007。关闭问题#11

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】在某些最近的服务器上,& 被替换为 &amp;,因此向旧 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 文件中找到许可证。

githalytics.com alpha