过了一段时间,我弄清楚了如何使用新的 API V2 创建推文,但新版本无法发送带有文本的媒体。这是我发送简单文本的代码,但我确实需要使用图像来创建。
require '../vendor/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$data = [
'text' => 'Hello world'
];
$connection->setApiVersion('2');
$content = $connection->post("tweets", $data, true);
var_dump($content);
我正在使用 twitteroauth.com 安装只需使用:
composer require abraham/twitteroauth
我找到了一个解决方案...这是使用媒体创建推文的代码...需要使用 API V1 上传媒体,然后使用 id 使用 V2 创建推文...
require '../vendor/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$image = [];
$media = $connection->upload('media/upload', ['media' => 'image/test.jpg']);
array_push($image, $media->media_id_string);
$data = [
'text' => 'Hello world',
'media'=> ['media_ids' => $image]
];
$connection->setApiVersion('2');
$content = $connection->post("tweets", $data, true);
var_dump($content);
下面有一张你需要使用的代币的图片,只有这个:
using $connection->setApiVersion('2'); getting error as
PHP Fatal error: Uncaught Error: Call to undefined method Abraham\TwitterOAuth\TwitterOAuth::setApiVersion() in D:\xampp\htdocs\twitterPHP\init.php:26
Stack trace:
#0 {main}
thrown in D:\xampp\htdocs\twitterPHP\init.php on line 26
how to solve it
<?php
require "vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
$consumerKey = 'x';
$consumerSecret = 'x';
$accessToken = 'x';
$accessTokenSecret = 'x';
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
$info = $connection->get("account/verify_credentials");
// var_dump($info);
$image = [];
$media = $connection->upload('media/upload', ['media' => './Screenshot 2024-04-30 122819.png']);
array_push($image, $media->media_id_string);
$data = [
'text' => 'Hello world',
'media'=> ['media_ids' => $image]
];
$connection->setApiVersion('2');
$content = $connection->post("tweets", $data, true);
// var_dump($content);
?>