Autorisieren Kommandozeilen-tool zu verbrauchen Google-APIs (über OAuth2.0 oder irgendetwas anderes)

Ich denke ich verstehe, wie OAuth 2.0 funktioniert im Kontext einer mobilen app oder website - weder ist mein Fall.

Ich habe ein C++ Befehlszeile Anwendung, die ich möchte zu geben, Zugang zu einem der Google-Dienste ( Google Fusion Tables ), aber ich denke, diese Frage gilt für alle von der Google-Dienste, oder der Teufel, vielleicht auch alle Kommandozeilen-app, die zu tun hat mit OAuth2.

Habe ich den Benutzernamen. Ich habe das Kennwort (der Benutzer eingegeben). Ich brauche, um ein token, so kann ich die Aufrufe durch Curl. Was ist der einfachste Weg, dies zu erreichen?

Update 1:

Nachdem sich durch die Dokumentation, so scheint es, dass die am wenigsten schmerzhafte OAuth2 flow werden die "Installierte Anwendung" ein.

Was ich denke ist, dass mein command line tool wird den Anforderungen für öffentliche Tische, ohne ein token (, aber es scheint, wir müssen noch um das senden einer Anwendungs-id aus Google, die ich bekommen kann von der Google-APIs dashboard).

Immer wenn mein Kommandozeilen-tool, müssen verwenden Sie eine private Ressource, die Benutzer werden gebeten, einen von Google gelieferten Autorisierungs-code (was mein Kommandozeilen-tool können Sie dann nutzen, um ein brauchbares token). Wenn der Benutzer hat nicht geliefert Autorisierungs-code in der Befehlszeile, mein tool würde nur drucken, einen link kann der Benutzer einfügen, um die URL zu generieren, den Authorisierungs-code. Der link würde dann so Aussehen:

https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/fusiontables&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=812741506391-h38jh0j4fv0ce1krdkiq0hfvt6n5amrf.apps.googleusercontent.com

Sobald der Benutzer akzeptiert, hätte Sie die paste, Autorisierungs-code auf den terminal, damit es verwendet werden kann mit dem Befehlszeilen-tool. Das Kommandozeilen-tool verwenden würde, den Authorisierungs-code für Google Fragen für eine token und dann, endlich, kann ich dann die Google-token, um die API-Aufrufe.

Ein paar Dinge sind mir noch immer unklar. Hat den Authorisierungs-code ändern? Wenn so, es scheint, ich würde retten müssen, die token und refresh Token irgendwo, so kann ich die Wiederverwendung der refresh-token jedes mal, wenn das token abläuft.

Ist es nur mir so, oder hat das ganze Ding scheint wie verrückt zu reden, gerade so, dass ich ein Google-API aus der command line?

Ich würde normalerweise verwenden Sie die ClientLogin flow, aber alles scheint darauf hinweisen, dass es wird bald veraltet.

InformationsquelleAutor rburhum | 2012-11-10
Schreibe einen Kommentar