Wir versuchen, die Google YouTube API zu nutzen, um Videos von unserer Website direkt über den Browser auf YouTube hochzuladen.
Die API funktioniert in zwei Schritten. Im ersten Schritt müssen wir ein Video-Objekt mit allen Metadaten wie Titel, Tags, Beschreibung, Kategorie usw. erstellen. Dann müssen wir eine Anfrage mit diesem Objekt an YouTube senden und erhalten als Antwort ein Token-Objekt. Dieses Token-Objekt hat einen Token-Wert und eine Token-URL als Mitglieder.
Im zweiten Schritt wird vorgeschlagen, ein Formular zu erstellen, bei dem das Attribut action auf die Token-URL gesetzt ist. Dieses Formular sollte ein Steuerelement zum Hochladen von Dateien und ein verstecktes Feld mit dem Token-Wert als Wert enthalten. Wenn dieses Formular veröffentlicht wird, wird das Video auf YouTube hochgeladen.
Das funktioniert gut, wenn wir den Prozess in zwei Schritten durchführen, indem wir die Nutzer zunächst nach den Metadaten fragen und sie dann auf eine zweite Seite für den eigentlichen Video-Upload weiterleiten. Wir versuchen jedoch, dies auf einer einzigen Seite zu erreichen, die für den Benutzer als ein einziger Schritt erscheint.
Wir haben eine MasterPage mit dem darin angegebenen 'aspnetForm', weswegen wir kein weiteres Formular mit runat='server'
Eigentum.
Wir haben versucht, das Aktionsattribut von aspnetFrom mit JavaScript/Code-Behind zu ändern, aber es bleibt immer gleich, egal was wir tun.
Wir haben auch versucht, ein weiteres verschachteltes Formular einzufügen, dessen Action-Tag beim Klick-Ereignis auf die Schaltfläche gesetzt wird, nachdem die erste Antwort von YouTube mit dem Token eingegangen ist. Aber auch das funktioniert nicht, da das Formular nicht zum Zeitpunkt des Aufrufs dieser Methode erstellt wird.
Wir haben verschiedene Ansätze ausprobiert, aber keiner scheint zu funktionieren. Jeder Vorschlag dazu wäre großartig.
Wenn Sie weitere Fragen haben, um die Situation klar zu verstehen, lassen Sie es mich bitte wissen.
Aktualisierung:
Danke für die Antworten, Leute.
Wir haben die Geschäftslogik ein wenig geändert, um das Problem zu beheben. Das Problem liegt schon lange zurück, und ich bin nicht auf der Suche nach einer Lösung für dieses Problem.
Die Frage ist jedoch noch offen und wird beantwortet. Ich bin wirklich dankbar für jede Hilfe und möchte die Frage daher für weitere Diskussionen offen lassen.