utxo-one / twitter-ultimate-php
Twitter v2 API的终极PHP包装器
v0.1.9
2022-11-07 16:09 UTC
Requires
- abraham/twitteroauth: ^4.0
- guzzlehttp/guzzle: ^7.5
Requires (Dev)
- pestphp/pest: ^1.22
- phpunit/phpunit: ^9.5
- vlucas/phpdotenv: ^5.4
README
Twitter v2 API的完整且具有见解的API包装器实现。所有方法都有完整的docblocks和严格的返回类型,这使得开发者通过IDE提供所有方法名称和参数变得容易。
先决条件
- => PHP 8.1
- Composer
- Twitter开发者账户
安装
composer require utxo-one/twitter-ultimate-php
使用方法
推文客户端
推文客户端可以初始化以获取公共信息,或执行认证操作。
公共API调用
只需提供您的bearerToken
即可初始化一个推文客户端,该客户端可以访问公共信息。
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient; $client = new TweetClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']); $tweet = $client->getTweet('1272846378268347');
认证API调用
要进行认证的API调用,您需要提供apiToken
、apiSecret
、accessToken
和accessSecret
。访问令牌是在用户认证您的应用后生成的。
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient; $client = new TweetClient( apiKey: $_ENV['TWITTER_API_KEY'], apiSecret: $_ENV['TWITTER_API_SECRET'], accessToken: $_ENV['TWITTER_ACCESS_TOKEN'], accessSecret: $_ENV['TWITTER_ACCESS_SECRET'], ); $tweet = $client->tweet('Hello World!');
可用的推文客户端方法
getTweet()
getTweets()
getQuoteTweets()
getLikingUsers()
getRetweetedByUsers()
tweet()
deleteTweet()
likeTweet()
unlikeTweet()
retweet()
unrtweet()
bookmarkTweet()
unbookmarkTweet()
获取推文详情
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient; $client = new TweetClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']); $tweet = $client->getTweet('1565628118001455105'); // Available Getter Methods. $tweet->getId(); $tweet->getText(); $tweet->getCreatedAt(); $tweet->getAuthorId(); $tweet->getConversationId(); $tweet->getInReplyToUserId(); $tweet->getLang(); $tweet->getSource(); $tweet->isWithheld(); $tweet->getPublicMetricS(); $tweet->getReplySettings(); $tweet->getReferencedTweets(); $tweet->getEntities(); $tweet->getGeo(); $tweet->getContextAnnotations(); $tweet->isPossiblySensitive(); $tweet->getAttachements();
获取多个推文详情
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient; $client = new TweetClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']); $tweets = $client->getTweets(['1565628118001455105', '1565999511536914433'])->all(); foreach($tweets as $tweet) { $tweet->getId(); // ... }
用户管理方法
获取用户详情
use UtxoOne\TwitterUltimatePhp\Clients\UserClient; $client = new UserClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']); $user = $client->getUserByUsername('utxoone'); $user->getId(); $user->getName(); $user->getUsername(); $user->getCreatedAt(); $user->getDescription(); $user->getLocation(); $user->getPinnedTweetId(); $user->getProfileImageUrl(); $user->getUrl(); $user->isVerified(); $user->isProtected(); $user->getEntities();
获取用户点赞的推文
use UtxoOne\TwitterUltimatePhp\Clients\UserClient; $client = new UserClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']); $user = $client->getUserByUsername('utxoone'); $likedTweets = $client->getLikedTweets($user->getId())->all(); foreach ($likedTweets as $likedTweet) { $likedTweet->getId(); $likedTweet->getText(); // ... }
关注用户
use UtxoOne\TwitterUltimatePhp\Clients\UserClient; $client = new UserClient( apiKey: $_ENV['TWITTER_API_KEY'], apiSecret: $_ENV['TWITTER_API_SECRET'], accessToken: $_ENV['TWITTER_ACCESS_TOKEN'], accessSecret: $_ENV['TWITTER_ACCESS_SECRET'], ); $user = $client->getUserByUsername('utxo_one'); $tweet = $client->follow($user->getId());
可用方法
getUserByUsername()
getUserById()
getLikedTweets()
getFollowers()
getFollowing()
follow()
unfollow()
getBlocks()
block()
unblock()
mute()
unmute()
列表管理方法
获取列表详情
use UtxoOne\TwitterUltimatePhp\Clients\ListClient; $client = new ListClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']); $list = $client->getList('64651656516516516'); $list->getId(); $list->getFollowerCount(); $list->getCreatedAt(); $list->getMemberCount(); $list->isPrivate(); $list->getDescription(); $list->getOwnerId();
创建列表
use UtxoOne\TwitterUltimatePhp\Clients\ListClient; $client = new ListClient( apiKey: $_ENV['TWITTER_API_KEY'], apiSecret: $_ENV['TWITTER_API_SECRET'], accessToken: $_ENV['TWITTER_ACCESS_TOKEN'], accessSecret: $_ENV['TWITTER_ACCESS_SECRET'], ); $list = $client->createList( name: 'My New List', description: 'My New List Description', private: false, ); $list->getId();
可用方法
getList()
getUserOwnedLists()
getListTweets()
getListMembers()
getUserMemberships()
getListFollowers()
getUserFollowedLists()
getUserPinnedLists()
createList()
updateList()
deleteList()
addListMember()
removeListMember()
followList()
unfollowList()
pinList()
unpinList()
空间管理方法
获取空间详情
use UtxoOne\TwitterUltimatePhp\Clients\SpaceClient; $client = new SpaceClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']); $space = $client->getSpace('64651656516516516'); $space->getId(); $space->getTitle(); $space->getCreatedAt(); $space->getUpdatedAt(); $space->getHostIds(); $space->getState(); $space->isTicketed(); $space->getLand(); $space->getCreatorId();