codezero / twitter
简单的 Twitter API 包装器
Requires
- php: >=5.4.0
- codezero/configurator: 3.*
- codezero/courier: 1.*
- codezero/utilities: 1.*
Requires (Dev)
- phpspec/phpspec: ~2.0
This package is auto-updated.
Last update: 2024-09-11 14:33:08 UTC
README
此包隐藏了与 Twitter API 交互的复杂性,而是提供了一些简单的函数来执行一些基本查询。
特性
- 所有查询都需要一个 API 密钥 和 API 密钥 来生成应用凭证
- 授权将在幕后自动触发
- 通过单个方法调用获取用户的推文
- 搜索带标签或关键词的 Twitter
- 以标准 JSON 格式获取结果,或使用我们简化的
Tweet
对象 - 可选缓存(仅包含 Laravel 实现,请参阅 codezero-be/courier)
- 可选的 Laravel ServiceProvider
安装
通过 Composer 安装此包
"require": {
"codezero/twitter": "1.*"
}
设置
Laravel 设置
安装后,更新您的 Laravel config/app.php
文件以在 providers 数组中包含此包的 ServiceProvider 引用。
'providers' => [
'CodeZero\Twitter\TwitterServiceProvider'
]
接下来,发布包配置文件并 输入您的 API 凭证。
对于 Laravel 4.*
php artisan config:publish codezero/twitter
对于 Laravel 5.*
php artisan vendor:publish --provider="CodeZero\Twitter\TwitterServiceProvider"
手动设置
指定配置文件的位置。示例配置文件包含在 src/config
文件夹中。您可以将它放在任何地方。
$config = '/path/to/configFile.php';
创建 Twitter 实例
use CodeZero\Twitter\Twitter;
$twitter = new Twitter($config);
编辑配置
您的配置文件应如下所示
<?php
return [
'base_url' => 'https://api.twitter.com/',
'api_version' => '1.1',
'api_key' => '',
'api_secret' => ''
];
请确保输入您的 API 密钥和 API 密钥。Twitter 要求对所有请求进行此操作。此外,不要在 base_url
中包含 API 版本,因为这会破坏授权请求。
使用
设置选项
要返回的结果数。每个 Twitter 请求都有一个最大限制。如果您指定的 $count
大于此限制,将返回最大结果。默认值:10
。
$count = 10;
查询结果应缓存多少分钟。Twitter 每小时设置一个请求限制,因此缓存是一个好主意。将此设置为 0
(零)将禁用缓存。默认值:30
。
$cacheMinutes = 30;
此包包含一个 Tweet
对象,它大大简化了返回的结果。如果您想返回完整的 JSON 响应,请将此设置为 false
。默认值:true
。
$returnEntities = true;
获取推文
try
{
$username = 'laravelphp'; //=> Example...
$tweets = $twitter->getTweetsFromUser($username, $count, $cacheMinutes, $returnEntities);
}
catch (\CodeZero\Twitter\TwitterException $e)
{
$error = $e->getMessage(); //=> user not found etc.
}
响应格式
JSON
如果 $returnEntities
是 false
,则返回一个 CodeZero\Courier\Response
对象,该对象包含实际的 JSON 响应。
$tweets = $twitter->getTweetsFromUser($username);
echo $tweets; //=> Print the JSON
$json = $tweets->getBody(); //=> Returns the JSON
$array = $tweets->toArray(); //=> Convert JSON to an array
有关此 Response
对象的更多信息,请参阅 codezero-be/courier。
推文
如果 $returnEntities
是 true
,则返回一个 CodeZero\Twitter\Entities\Tweet
对象的数组。这是一个非常简化的 Tweet
对象,它只包含关于推文及其用户的最有用信息。
$tweets = $twitter->getTweetsFromUser($username);
foreach ($tweets as $tweet)
{
$user = $tweet->user();
$tweetOwner = $user->getName();
$tweetUsername = $user->getUsername();
$tweetText = $tweet->getText();
$tweetDate = $tweet->getCreatedAt();
}
有关所有可用的 Tweet
和 User
信息概述,请参阅源代码。
可用请求
获取用户的推文
$username = 'laravelphp';
$tweets = $twitter->getTweetsFromUser($username, $count, $cacheMinutes, $returnEntities);
搜索带标签或关键词的推文
$query = '#laravel';
$tweets = $twitter->searchTweets($query, $count, $cacheMinutes, $returnEntities);