2010-08-05 23 views
1

J'essaie de construire une application où je peux télécharger des fichiers sur YouTube. J'ai commencé à travailler avec OAuth, et Youtube retourne une session! Le problème que j'ai est, youtube exige que je fasse un POST XMLHTTP pour obtenir une URL où je peux télécharger par ma page Web.Classic ASP MSXML2.ServerHTTP Post - Youtube Api

Je n'ai aucune idée de comment faire un poste XMLHTTP avec les paramètres supplémentaires youtube exige. Ils ont des exemples de code en PHP et .net deux que je ne comprends pas encore :(

C'est là où je suis coincé: http://code.google.com/apis/youtube/2.0/developers_guide_protocol_browser_based_uploading.html#Sending_a_Browser_Upload_API_Request

Je ne sais pas comment formater une commande http xml pour avoir tous les les variables youtube veut S'il vous plaît aider ...

ici est ce qu'ils veulent ..

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> 

Voici le code que j'ai maintenant. Je pense que j'ai besoin des en-têtes? Lorsque je l'affiche, j'obtiens une réponse non autorisée. J'ai aussi essayé de créer un vieux html et essayer, mais ça ne fonctionne pas ...

ne sais pas comment ces paramenters sont envoyés:

Voici ce que je suis

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 
+0

Utilisez-vous VBScript ou JScript? – RedFilter

+0

Vbscript ... merci de regarder dans ce ... Je dois vraiment apprendre .NET ou peut-être PHP. Im 10 ans de retard = ( – Frank

+0

Avez-vous besoin d'aide pour ajouter les entêtes HTTP, ou créer le code XML? S'il vous plaît poster le code que vous avez jusqu'à présent – RedFilter

Répondre

1

Première , setRequestHeader ne prend pas un deux-points. Il devrait juste être

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" 

Ensuite, envoyez-vous la bonne longueur de contenu? Cela a besoin d'être précis. Je suppose que le "8" manquant de votre en-tête Content-Type à la fin était une faute de frappe.

Enfin, vous devez installer immédiatement Fiddler et vous simplifier la vie.

+0

Comment mesurer la longueur du contenu programatically? – Frank

+0

PS. Mike merci, va essayer dans une minute ... – Frank

+0

MERCI ERREURS PLUS dE ,, dois encore comprendre quelques trucs, mais ses en-têtes sont bien ... Merci à propos de violoneux aussi, l'ai obtenu – Frank