eugenecooper / tumblr
PHP的非官方Tumblr API客户端。
Requires
- php: >=5.5.0
- guzzlehttp/oauth-subscriber: 0.3.*
Requires (Dev)
- mockery/mockery: ~0.9.4
- phpunit/phpunit: ~4.8
This package is auto-updated.
Last update: 2024-09-05 06:47:27 UTC
README
非官方的PHP Tumblr API客户端
安装
通过Composer,你必须要求安装包matheusmariano/tumblr
。
使用
use MatheusMariano\Tumblr\Client; use MatheusMariano\Tumblr\Connector\Auth\ApiKey; $auth = new ApiKey('my-api-key'); $client = new Client($auth); $object = $client->get('blog/nutright.tumblr.com/posts', [ 'api_key' => true, 'tag' => 'fruit' ]);
身份验证
在请求API的任何方法之前,需要对我们客户端进行身份验证。为了做到这一点,有两种身份验证级别
- API密钥
- OAuth
API密钥级别是最简单的,因为它只需要Tumblr在注册您的应用程序时给出的消费者密钥
。要使用此密钥,应导入ApiKey
类
use MatheusMariano\Tumblr\Connector\Auth\ApiKey;
并使用您的消费者密钥
实例化。
$auth = new ApiKey('your-consumer-key');
您可以使用OAuth级别以几乎相同的方式导入OAuth
类
use MatheusMariano\Tumblr\Connector\Auth\OAuth;
并使用所有必要的密钥实例化。
$auth = new OAuth; // Also accepts ordered parameters. $auth->consumerKey = '...'; $auth->consumerSecret = '...'; $auth->oauthToken = '...'; $auth->oauthTokenSecret = '...';
OAuth令牌和授权者
从用户那里获取令牌是一项稍微不同的任务,因为这些令牌需要通知并授权您的应用程序。这是一个涉及许多步骤的过程,但Authorizer
类使一切变得简单。对于每个使用的页面,您应按以下方式导入该类。
use MatheusMariano\Tumblr\Authorizer;
第一步是将您的消费者发送到Tumblr,并提供您的回调URI。假设它应该是https://example.com/auth/tumblr/callback
。
$auth = new OAuth; $auth->consumerKey = '...'; $auth->consumerSecret = '...'; $authorizer = new Authorizer($auth); $tokens = $authorizer->getTemporaryTokens('https://example.com/auth/tumblr/callback');
如果消费者被接受,您应该收到临时令牌。
['oauth_token' => '...', 'oauth_token_secret' => '...']
保存这些令牌,因为它们对于下一个会话是必要的。现在您需要将用户重定向到https://www.tumblr.com/oauth/authorize?oauth_token={$tokens['oauth_token']}
。在那里,他们可以授权您的应用程序,然后将被重定向到回调URI。
在https://example.com/auth/tumblr/callback
中,步骤是发送消费者和临时令牌,以及从Tumblr接收到的GET参数oauth_verifier
。
$auth = new OAuth; $auth->consumerKey = '...'; $auth->consumerSecret = '...'; $auth->oauthToken = $oauthToken; $auth->oauthTokenSecret = $oauthTokenSecret; $authorizer = new Authorizer($auth); $tokens = $authorizer->getTokens($oauthVerifier);
如果您愿意,可以使用全局的$_GET
来获取oauth_verifier
。
$oauthVerifier = $_GET['oauth_verifier'];
如果一切按计划进行,您应该收到用户的最终令牌。
客户端
配置好其中一个身份验证器后,您可以导入Client
类
use MatheusMariano\Tumblr\Client;
并用身份验证器实例化。
$client = new Client($auth);
方法
在此包的0.1
版本中,Client
只有2个非常基本的方法
get
post
遵循Tumblr API非常重要,以便正确使用这些方法并处理响应。
示例:获取带有fruit
标签的文本帖子。
$object = $client->get('blog/nutright.tumblr.com/posts/text', [ 'api_key' => true, 'tag' => 'fruit', ]);
响应应该是一个包含所有response
内容的stdClass
对象,遵循Tumblr API。
$object->total_posts; // int $object->posts; // array $object->blog; // stdClass $object->blog->title; // string
post
方法工作方式相同。
$client->post('blog/nutright.tumblr.com/post', [ 'type' => 'text', 'tags' => 'fruit, apple, red', 'title' => 'My new post title', 'body' => 'My new post body...', ]);
异常
请求方法可能会遇到错误,通常是401未授权
和404未找到
,抛出如GuzzleHttp\Exception\ClientException
、GuzzleHttp\Exception\ServerException
等异常,这些异常应该使用try...catch
进行处理。有关更多信息,请参阅Guzzle文档。
try { $client->get('blog/nutright.tumblr.com/followers', ['api_key' => true]); } catch (\GuzzleHttp\Exception\ClientException $e) { // Do something }
许可证
PHP Tumblr客户端是一个开源软件,受MIT许可证许可。