YouTube のサーバーに POST リクエストを送信して、OAuth 経由で YouTube に動画を直接アップロードしたいだけです。
アクセス トークンと開発者キーを持っています。PHP から YouTube の gdata サーバーに POST リクエストを送信するにはどうすればよいですか?
送信したい POST リクエストはここにあります: Sending an Upload API Request
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;
}
}
cURLもやってみた!