coderjerk/bird-elephant

一个简单的库,用于从 Twitter APIv2 端点请求数据

v0.7.1 2024-02-14 01:41 UTC

README

Bird Elephant

Latest Packagist Version Total Downloads

Minimum PHP Version twitter

在 PHP 中连接到 Twitter API v2 端点。

此包提供了一些与 PHP 中的 Twitter Rest API v2 端点交互的有用方法。它提供了一套干净且易于理解的函数和方法,用于发送推文、管理用户、查找数据以及 Twitter API v2 提供的所有其他功能,所有这些都可以在您的应用程序或网站上完成。

在 birdelephant.com 上提供完整的文档和示例

入门指南

要使用 Twitter API v2,以及此包,您必须拥有经过批准的开发者账户,并且已经激活了新的开发者门户。

了解更多有关访问 Twitter API v2 端点的信息

Twitter Api 入门指南文档

安装

通过 composer 安装。

composer require coderjerk/bird-elephant

身份验证

在开发者门户中创建应用程序时,您需要生成您的凭据。

按照上述 Twitter 开发者文档中的说明进行操作。请确保授予您的应用程序正确的权限,并在需要时启用三重 OAuth。

按照以下方式将凭据作为键值数组传递

$credentials = array(
    //these are values that you can obtain from developer portal:
    'consumer_key' => xxxxxx, // identifies your app, always needed
    'consumer_secret' => xxxxxx, // app secret, always needed
    'bearer_token' => xxxxxx, // OAuth 2.0 Bearer Token requests

    //this is a value created duting an OAuth 2.0 with PKCE authentication flow:
    'auth_token' => xxxxxx // OAuth 2.0 auth token

    //these are values created during an OAuth 1.0a authentication flow to act ob behalf of other users, but these can also be obtained for your app from the developer portal in order to act on behalf of your app.
    'token_identifier' => xxxxxx, // OAuth 1.0a User Context requests
    'token_secret' => xxxxxx, // OAuth 1.0a User Context requests
);

$twitter = new BirdElephant($credentials);

Twitter 开发者身份验证文档

OAuth 2.0 Bearer 令牌身份验证是最直接的,但将限制您访问某些端点。

当然,在两种可能的用户上下文身份验证流程中,您都需要传递经过身份验证用户的凭据作为 OAuth 1.0a 的 token_identifier 和 token_secret 或 OAuth 2.0 的 'auth_token'。

OAuth 1.0a 受支持,但新应用程序最好选择带有 PKCE 的 OAuth 2.0,因为某些较新的端点仅支持这种身份验证方式,并且 Twitter 可能在未来取消对该方式的支持。

OAuth 1.0a 是执行媒体上传所需的 - 作为 v2 替代品,BirdElephant 支持的唯一 Api v1.1 端点尚不存在。

您可以通过查看 index.phpauthenticate.php 了解简单的 OAuth 2.0 与 PKCE 流在实际中如何工作。为此,请使用专门的 oAuth 库 - 在示例中,我使用了 smolblog/oauth2-twitter,它很好地完成了这项工作。

请记住,在使用带有 PKCE 的 OAuth 2.0 时包含必要的范围 - 完整列表在此

https://developer.twitter.com/en/docs/authentication/oauth-2-0/authorization-code

请谨慎保管您的凭据,切勿将其提交到您的存储库。我建议使用 .env 文件来管理您的凭据,您可以将 .env.example 的内容复制到您的项目中的 .env,并根据需要填写您的凭据: 如何使用它

文档

所有可用 Bird Elephant 方法的文档和示例均在此处。

快速示例

本软件包提供了多种与Twitter API交互的方式。推荐使用简单的辅助方法,但同时也提供了一个工具方法,并且可以直接访问许多底层类。如果您想与底层类交互,请阅读代码中的文档。

use Coderjerk\BirdElephant\BirdElephant;

//your credentials, should be passed in via $_ENV or similar, don't hardcode.
$credentials = array(
    'consumer_key' => xxxxxx,
    'consumer_secret' => xxxxxx,
    'bearer_token' => xxxxxx,
    // if using oAuth 2.0 with PKCE
    'auth_token' => xxxxxx // OAuth 2.0 auth token
    //if using oAuth 1.0a
    'token_identifier' => xxxxxx,
    'token_secret' => xxxxxx,
);

//instantiate the object
$twitter = new BirdElephant($credentials);

//get a user's followers using the handy helper methods
$followers = $twitter->user('coderjerk')->followers();

//pass your query params to the methods directly
$following = $twitter->user('coderjerk')->following([
    'max_results' => 20,
    'user.fields' => 'profile_image_url'
]);

//tweet something
$tweet = (new \Coderjerk\BirdElephant\Compose\Tweet)->text(".@coderjerk is so cool");

$twitter->tweets()->tweet($tweet);

// You can also use the sub classes / methods directly if you like:
$user = new UserLookup($credentials);
$user = $user->getSingleUserByID('2244994945', null);

参考资料

注意事项

这是一个由我()在业余时间编写的非官方工具,与Twitter无关。

本软件包不支持Twitter API v1.1(除了媒体上传)。

赞助商

Hype Machine

感谢Hype Machine赞助本项目。

赞助

如果您或您的公司认为这个库很有用,可以通过给我一些欧元来表示支持,我会在这里以及项目网站上为您宣传。

赞助开发

贡献

克隆/下载代码并运行

composer install

.env.example复制到.env,并添加您的测试凭据。

要运行测试

./vendor/bin/phpunit

欢迎提出问题、pull请求和其他贡献。请使用提供的 issue 模板。

如果您想参与其中,可以查看项目板以了解即将推出的功能 :)

我们下一步要做什么——在API变更的背景下,本项目的未来