1

YouTubeにファイルをアップロードできるアプリケーションを構築しようとしています。OAuthが機能するようになり、Youtubeがセッションを返します。

私が抱えている問題は、YouTubeでは、自分のWebページからアップロードできるURLを取得するためにXMLHTTPPOSTを作成する必要があるということです。

YouTubeが必要とする追加のパラメーターを使用してXMLHTTP投稿を作成する方法がわかりません。PHPと.netのコードサンプルがありますが、どちらもまだ理解していません:(

これは私が立ち往生しているところです: http ://code.google.com/apis/youtube/2.0/developers_guide_protocol_browser_based_uploading.html#Sending_a_Browser_Upload_API_Request

YouTubeが必要とするすべての変数を持つようにxmlhttpコマンドをフォーマットする方法がわかりません。助けてください...

これが彼らが望むものです。

 POST /action/GetUploadToken HTTP/1.1
Host: gdata.youtube.com
Authorization: AuthSub token="DXAA...sdb8"
GData-Version: 2
X-GData-Key: key=adf15ee97731bca89da876c...a8dc
Content-Length: 1941255
Content-Type: application/atom+xml; charset=UTF-8

<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom"
  xmlns:media="http://search.yahoo.com/mrss/"
  xmlns:yt="http://gdata.youtube.com/schemas/2007">
  <media:group>
    <media:title type="plain">Bad Wedding Toast</media:title>
    <media:description type="plain">
      I gave a bad toast at my friend's wedding.
    </media:description>
    <media:category
      scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People
    </media:category>
    <media:keywords>toast, wedding</media:keywords>
  </media:group>
</entry>

これが私が今持っているコードです:私はヘッダーが必要だと思いますか?私がそれを投稿するとき、私は許可されていないという応答を受け取ります。また、古いhtmlを作成して試してみましたが、機能しません...

それらのパラメンターがどのように送られるのか分かりません:

これが私が得たものです

Set  xmlHttp = CreateObject("MSXML2.ServerXMLHTTP")

URLString = "http://gdata.youtube.com/action/GetUploadToken"
SendString = ""
    SendString = SendString & "Authorization: AuthSub token=" &  token
xmlHttp.open "POST", URLString & "?" & SendString
xmlHttp.setRequestHeader "Host:", "gdata.youtube.com"
xmlHttp.setRequestHeader "Authorization: AuthSub token=", token
xmlHttp.setRequestHeader "GData-Version:", "2"
xmlHttp.setRequestHeader "Content-Length:", "<content_length>"
xmlHttp.setRequestHeader "Content-Type", "application/atom+xml; charset=UTF-"
xmlHttp.send SendString

If xmlHttp.Status >= 400 And xmlHttp.Status <= 599 Then
    Response.Write "<BR><BR><BR>Error Occured: " & xmlHttp.statusText
Else
  '  ReturnData = Replace(xmlHttp.responseText, "&", ",")
        Response.Write "<BR><BR><BR>WENT GOOD?<BR>" & xmlHttp.responseText
End If
4

1 に答える 1

1

まず、setRequestHeaderはコロンを取りません。それはただあるべきです

xmlHttp.setRequestHeader "Host", "gdata.youtube.com"
xmlHttp.setRequestHeader "Authorization", "AuthSub token=" & token
xmlHttp.setRequestHeader "GData-Version", "2"
xmlHttp.setRequestHeader "Content-Length", "<content_length>" <-- THIS IS IMPORTANT!
xmlHttp.setRequestHeader "Content-Type", "application/atom+xml; charset=UTF-8"

次に、正しいコンテンツの長さを送信していますか?これは正確である必要があります。最後にContent-Typeヘッダーから欠落している「8」はタイプミスだったと思います。

最後に、 Fiddlerをすぐにインストールして、生活を簡素化する必要があります。

于 2010-08-05T18:57:16.673 に答える