codezero/twitter

简单的 Twitter API 包装器

1.1.1 2015-12-12 14:38 UTC

This package is auto-updated.

Last update: 2024-09-11 14:33:08 UTC


README

Build Status Latest Stable Version Total Downloads License

此包隐藏了与 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

如果 $returnEntitiesfalse,则返回一个 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

推文

如果 $returnEntitiestrue,则返回一个 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();
}

有关所有可用的 TweetUser 信息概述,请参阅源代码。

可用请求

获取用户的推文

$username = 'laravelphp';
$tweets = $twitter->getTweetsFromUser($username, $count, $cacheMinutes, $returnEntities);

搜索带标签或关键词的推文

$query = '#laravel';
$tweets = $twitter->searchTweets($query, $count, $cacheMinutes, $returnEntities);

这就是现在的所有内容...

Analytics