1

我只想向 YouTube 的服务器发送一个 POST 请求,通过 OAuth 将视频直接上传到 YouTube。

我有访问令牌和开发人员密钥 - 我如何将 POST 请求从 PHP 发送到 YouTube 的 gdata 服务器?

我想发送的 POST 请求可以在这里找到:发送上传 API 请求

POST /feeds/api/users/default/uploads HTTP/1.1
Host: uploads.gdata.youtube.com
Authorization: Bearer ACCESS_TOKEN
GData-Version: 2
X-GData-Key: key=DEVELOPER_KEY
Slug: VIDEO_FILENAME
Content-Type: multipart/related; boundary="BOUNDARY_STRING"
Content-Length: CONTENT_LENGTH
Connection: close

--<boundary_string>
Content-Type: application/atom+xml; charset=UTF-8

API_XML_request
--BOUNDARY_STRING
Content-Type: VIDEO_CONTENT_TYPE
Content-Transfer-Encoding: binary

<Binary File Data>
--BOUNDARY_STRING--

我尝试了下面的函数,并且更喜欢它,但它无法发送上述 POST 请求的 XML 部分。

if (!function_exists('send_post_request'))
{
    function send_post_request($url, $data)
    {
        $context = stream_context_create(array('http' => array('method'  => 'POST',
                                                               'content' => http_build_query($data))));
        $result  = file_get_contents($url, FALSE, $context);
        return $result;
    }
}

我也试过卷曲!

4

0 回答 0