Reputation: 68
I am using codebird for uploading video .
status text is displaying in twitter account but it is not uploading/showing video .
here is twitter response.
1470928 byte object(stdClass)#7 (3) { ["errors"]=> array(1) { [0]=> object(stdClass)#6 (2) { ["code"]=> int(324) ["message"]=> string(35) "Invalid media id 806853054318448640" } } ["httpstatus"]=> int(400) ["rate"]=> NULL }
and Code
require_once ('codebird/src/codebird.php');
\Codebird\Codebird::setConsumerKey('xyz','XXXXXXX'); // static, see README
$cb = \Codebird\Codebird::getInstance();
$cb->setToken('Xyz', 'xyz');
$file = 'www.something.com/*.mp4';
$size_bytes = filesize($file);
$ch = curl_init($file);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
echo '<br>';
if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
// Contains file size in bytes
$contentLength = (int)$matches[1];
}
echo $size_bytes = $contentLength ;
$fp = fopen($file, 'r');
// INIT the upload
$reply = $cb->media_upload([
'command' => 'INIT',
'media_type' => 'video/mp4',
'total_bytes' => $size_bytes
]);
$media_id = $reply->media_id_string;
$media_id ;
$segment_id = 0;
while (! feof($fp)) {
$chunk = fread($fp, 1048576); // 1MB per chunk for this sample
$reply = $cb->media_upload([
'command' => 'APPEND',
'media_id' => $media_id,
'segment_index' => $segment_id,
'media' => $chunk
]);
$segment_id++;
}
fclose($fp);
$reply1 = $cb->media_upload([
'command' => 'FINALIZE',
'media_id' => $media_id
]);
if ($reply->httpstatus < 200 || $reply->httpstatus > 299) {
die();
}
$reply2 = $cb->statuses_update([
'status' => 'Tw gvifdeggeo uploadsrrs.',
'media_ids' => $media_id
]);
var_dump($reply2);
Curl and allow_url_fopen are enabled Help me what i am missing ? or what this reponse indicates ?
Upvotes: 0
Views: 1017
Reputation: 6581
After getting the media_id
, you have successfully uploaded the media to your account. The next step is to tweet using that media. Here is a snippet example:
//upload the file to your twitter account
$mediaID = $reply->media_id_string;
//build the data needed to send to twitter, including the tweet and the image id
$params = array(
'status' => $message,
'media_ids' => $mediaID // BE SURE TO TWITTER's NOT YOURS!
);
//post the tweet with codebird
$reply2 = $cb->statuses_update($params);
dump out the 2nd reply
var_dump($reply2);
Upvotes: 0