Twitter API V2 使用媒体 PHP 创建推文

问题描述 投票:0回答:2

过了一段时间,我弄清楚了如何使用新的 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
php twitter
2个回答
4
投票

我找到了一个解决方案...这是使用媒体创建推文的代码...需要使用 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);

下面有一张你需要使用的代币的图片,只有这个:


0
投票
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);
?>
© www.soinside.com 2019 - 2024. All rights reserved.