utxo-one/twitter-ultimate-php

Twitter v2 API的终极PHP包装器

v0.1.9 2022-11-07 16:09 UTC

This package is auto-updated.

Last update: 2024-09-08 17:48:47 UTC


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调用,您需要提供apiTokenapiSecretaccessTokenaccessSecret。访问令牌是在用户认证您的应用后生成的。

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();