GoogleWebAuthorizationBroker.AuthorizeAsync Hängt
Muss unsere website hochladen von videos auf youtube aus der code-behind - (asp.net mvc-Anwendung). Ich versuche, die google-Anmeldeinformationen, aber wenn ich rufen Sie die AuthorizeAsync, die Anwendung hängt. Ich habe überall gesucht nach einer Lösung und nichts scheint zu helfen. Ich habe bereits gesucht, die offensichtlich auf google-und stack-überlauf. das meiste, was ich gefunden habe erwähnt, dass die Anwendung möglicherweise nicht haben Zugriff auf den appdata-Ordner, also habe ich versucht, die änderung der Ordner in c-Laufwerk, d-Laufwerk, und in der tatsächlichen inetpub Lage. getestet habe ich gefunden und ich war in der Lage, die Anwendung zu schreiben, um jene stellen.
um genauer zu sein, der user ist admin, Kunden hochladen von videos auf uns, und der Administrator Sie genehmigt. wenn der admin zustimmt, ist es geschrieben auf unserem youtube-account. der admin sollte nicht alles tun, aber klicken Sie auf die Schaltfläche genehmigen.
Machen es zu einem eigentlichen Frage, was kann ich tun, um vorbei an der AuthorizeAsync? Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen
UserCredential credential;
GoogleWebAuthorizationBroker.Folder = "YouTube.Auth.Store";
using (var stream = new FileStream(CredentialsPath, FileMode.Open,
FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
//This OAuth 2.0 access scope allows an application to upload files to the
//authenticated user's YouTube channel, but doesn't allow other types of access.
new[] { YouTubeService.Scope.YoutubeUpload },
"user",
CancellationToken.None,
new FileDataStore("YouTube.Auth.Store")
).Result;
}
Ich habe nicht das Problem gelöst, aber falls jemand wissen will, ich denke ich habe eine Lösung gefunden hier: anilanar.wordpress.com/2013/07/19/...
Google, trotz top-Internet-Unternehmen, saugt bei der Versorgung der Fehler für die Entwickler. Ich hasse es, unter Verwendung seiner client-Bibliotheken.
AuthorizeAsync auch gehängt für mich und nach vielen trial-and-error Schritten gefunden, dass das problem war Weg in der 'neuen FileDataStore("YouTube".Auth.Speichern")' war falsch auf dem server, auf dem es ausgeführt wurde.
InformationsquelleAutor iedoc | 2014-12-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Weg gefunden, übergeben bekommen.
Ich verwendet GoogleAuthorizationCodeFlow statt. dies ist, was es stellte sich heraus Aussehen:
Was ist
REFRESH_TOKEN
?das ist es, was ich für meinen
GoogleWebAuthorizationBroker.AuthorizeAsync()
nennen. Sie sehen sich ähnlich, so dass ich vermute, dass die Antwort auf deine Frage ist "ja".ja, Sie haben buchstäblich string "user" - das kommt aus Google-API-Beispiel-code: developers.google.com/youtube/v3/code_samples/...
ist ein permanent-token, die Sie später exchange für den access-token verwendet werden, die von Ihrem server-side app (wie ist der Kontext hier). Sie können mit ihm spielen in Google OAuth-Spielplatz developers.google.com/oauthplayground. Workflow soll hier wie folgt: (i) Sie registrieren neues Projekt im Google-Konsole console.developers.google.com und generieren "Anderen" Anmeldeinformationen. Geben Sie clientId und clientSecret. (ii) Sie verwenden
GoogleWebAuthorizationBroker.AuthorizeAsync
einmal zur Autorisierung der app und erhalten SieREFRESH_TOKEN
(iii) Sie fest im code 🙂InformationsquelleAutor iedoc
Ist es möglich, zu brechen, wenn diese, zum Beispiel mit einem timeout, da die
AuthorizeAsync
- Methode hat die Umsetzung einerCancellationToken
.TokenSource
erhalten Sie das Token selbst.AuthorizeAsync
Methode.Nun, nach 20 Sekunden, wenn die
AuthorizeAsync
war nicht beendet, der Aufrufer dieser MethodeRunAsync
erhalten eine Ausnahme.InformationsquelleAutor Markus Zeller
Diese Zeile generiert ein access token in YouTube.Auth.Store/xxx, und Sie müssen Sie die Rechte Maustaste diese Datei -> Eigenschaften -> Copy to Output Directory (- > immer Kopieren in visual studio
es funktioniert für mich.
InformationsquelleAutor au.tw
Dem folgenden code können Sie Ihr google-drive-api-Anmeldeinformationen anfordern login-Informationen der Benutzer, und laden Sie die Datei auf Ihrem server durchführen Anforderung:
Hier ist die WebForm .aspx-Seite:
InformationsquelleAutor Vince Pike