glamorous/tmdb-php-api

此包已被放弃,不再维护。作者建议使用 php-tmdb/api 包。

用于使用 TMDb (themoviedb.org) API 的 PHP 类。由于 IMDB 没有API,我们提供了这个PHP5类。接收电影或演员的所有信息非常简单。无需抓取。

dev-master 2018-06-25 16:25 UTC

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_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.5.1 - 2012年11月16日

  • [bug] getPersonCredits 方法未按正确方式工作。感谢github用户 caa007。已关闭问题 #11

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日

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] 在某些最近的服务器上,& 被替换为 &amp;,因此向旧的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 中

githalytics.com alpha