【发布时间】:2017-04-23 16:03:45
【问题描述】:
我正在使用 codebird 上传视频。
状态文本显示在 twitter 帐户中,但未上传/显示视频。
这是推特回复。
1470928 字节 object(stdClass)#7 (3) { ["errors"]=> array(1) { [0]=> object(stdClass)#6 (2) { ["code"]=> int(324) [" message"]=> string(35) "无效的媒体 ID 806853054318448640" } } ["httpstatus"]=> int(400) ["rate"]=> NULL }
和代码
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 和 allow_url_fopen 已启用 帮我看看我错过了什么?或者这个回复表明了什么?
【问题讨论】:
-
为什么sn-p代码以
$media_id = $reply->media_id_string;开头?请发布整个相关代码(在这种情况下,您如何获得$reply是高度相关的