gpt4 book ai didi

php - Twitter 上传媒体 - 无法验证您的身份

转载 作者:行者123 更新时间:2023-12-04 18:05:36 24 4
gpt4 key购买 nike

尝试将照片上传到 Twitter 时遇到问题。我使用 twitteroauth.php 进行身份验证,我通过 api 发布推文或接收数据没有问题。但是当我想上传照片时,我收到以下错误:{"errors":[{"message":"Could not authentication you","code":32}]}

这是我的代码:

<?php
require_once('../include/initialize.php');

require_once('twitter/twitteroauth.php');

if(isset($_GET['access_token']) && $_GET['access_token'] != ''){
$accesstoken = $_GET['access_token'];
}else{
$accesstoken = TWITTER_ACCESS_TOKEN;
}

if(isset($_GET['access_token_secret']) && $_GET['access_token_secret'] != ''){
$accesstokensecret = $_GET['access_token_secret'];
}else{
$accesstokensecret = TWITTER_ACCESS_TOKEN_SECRET;
}

$consumerkey = TWITTER_CONSUMER_KEY;
$consumersecret = TWITTER_CONSUMER_SECRET;
$twitter = new TwitterOAuth($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);

$url = $_POST['url'];
$filename = $_POST['filename'];

// function to replace file_get_contents()
function file_get_the_contents($url) {
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
return $file_contents;
}

// original script updated with new function
$imgget = file_get_the_contents($url);

$twitter_api = "https://upload.twitter.com/1.1/media/upload.json?media=".$imgget."&type=photo";

$twitter_img = $twitter->post($twitter_api);

echo json_encode($twitter_img);

任何人都可以帮助我解决这个问题。我环顾了论坛,但我发现的所有其他问题都涉及已弃用的 statuses/update_with_media。
谢谢。

最佳答案

this回答者 toster-cx ,您需要确保以 base 64 对图像数据进行编码。否则,Twitter 将响应错误 32。您将需要如下内容:

$imgget = base64_encode(file_get_the_contents($url));

关于php - Twitter 上传媒体 - 无法验证您的身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27486708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com