2009-06-08 5 views
3

Je suis un peu confus à propos de tout ce brouhaha OAuth dans le sens où tous les exemples que je peux trouver sont pour les applications web et aucun pour les applications de bureau.Flux de travail pour l'authentification et l'utilisation API avec Twitter sur OAuth

Je comprends le flux de travail de l'application Web, mais cela inclut certaines redirections entre l'application Web et Twitter.

  • Comment fait-on cela dans une application de bureau?
  • Comment fonctionnent les redirections?
  • Dois-je inclure un objet Navigateur Web?
  • Existe-t-il un moyen de contourner ce problème?
  • Quelqu'un pourrait-il me désigner des ressources au lieu d'une solution complète s'il vous plaît?

Merci

+0

Avez-vous réussi à trouver une solution à cela? Je fais la même chose - construire une application de bureau sur Twitter et avoir un NIGHTMARE! veuillez poster votre solution ou code si vous l'avez fait! – xoxo

+0

Malheureusement, j'ai eu plus de questions que de réponses. J'ai 3 à 4 façons de le faire. Mais tout va de l'utilisateur ennuyeux au programmeur diabolique Hack. C'est juste des solutions de contournement pour quelque chose qui n'était pas censé être. ARGHHHH !!!! –

+0

Seriez-vous capable d'aider à déplacer ce bloc mental que j'ai alors ... Je ne sais pas quoi faire avec le numéro de broche ?! Je détourne l'utilisateur à un contrôle de navigateur Web pour se connecter, puis ils cliquent sur soumettre et il va au numéro de broche ... mais je ne sais pas quoi faire avec le numéro de broche, et je ne sais pas comment obtenir mon application sachez que l'utilisateur a cliqué sur Soumettre pour que le formulaire puisse se fermer! Des idées? – xoxo

Répondre

3

Je ne sais pas quelle langue que vous utilisez, mais la bibliothèque .NET pour Twitter appelé Tweetsharp a un poste sur l'utilisation Tweetsharp à partir d'une application de bureau et d'authentification via OAuth. Voir http://tweetsharp.com/?p=68. Si vous n'utilisez pas .NET alors peut-être que cela vous inspirera quelque chose que vous pouvez faire? Fondamentalement, tweetsharp lance le navigateur vers l'URL d'authentification et attend que l'utilisateur retourne. Je ne connais aucun moyen de le faire autre que quelque chose comme ça (Ou inclure un contrôle WebBrowser de quelque sorte pour lancer l'URL d'authentification dans votre propre fenêtre).

+0

Merci mon pote, mais cela implique toujours de sortir de mon chemin et d'attendre une application externe. Je dois tout contenir dans mon application. Il est logique d'avoir le login et le mot de passe dans votre application de bureau, diable, dites-moi celui qui n'a pas ... Cela ne résout pas vraiment mon problème, mais merci quand même. –

+0

Oui, je comprends. Cependant, pour OAuth dans une application de bureau, il n'y a pas d'autre option. Le but d'OAuth est de * ne pas * demander à votre application de demander des informations d'identification. –

0

Après quelques questions et d'autres questions sur ce sujet à d'autres programmeurs, il semble que ce soit toujours une discussion en cours, sans lumière visible au bout du tunnel.

Mais pour les personnes intéressées à la discussion en cours, voici le meilleur lien pour avoir:
OAuth Desktop Discussion

+0

Après ma "conversation" avec xoxo, il semble qu'une réponse possible puisse être meilleure que la mienne. Va tenir pour Xoxo pour obtenir des choses. –

0

j'ai vu quelques applications de bureau contourner ce problème en intégrant efficacement un navigateur dans leur programme, afin qu'ils puissent il suffit d'ouvrir la fenêtre du navigateur dans l'application pour vous permettre de vous connecter et d'autoriser. Cela me semble un peu une tricherie ou une défaite du but parce que vous finissez toujours par taper votre identifiant et votre mot de passe dans l'application de toute façon.

Une possibilité que je pensais était, votre application de bureau pourrait intégrer un mini serveur HTTP à l'intérieur. Alors, il lance le navigateur par défaut pour effectuer l'autorisation, avec une URL de rappel quelque chose comme http://127.0.0.1:8765/oauthorized, puis écoutez-le.

Est-ce que cela fonctionnerait?

Vous ne savez pas ce que vous feriez pour les applications de console ... générer une copie de lynx?

+0

Le serveur HTTP pourrait fonctionner. Je vais devoir examiner le problème localhost qui a été soulevé plus tôt juste pour confirmer que c'est toujours possible. Merci pour cette suggestion, semble intéressant. –

0
  1. Incluez un contrôle WebBrowser dans votre application. Mettez-le dans un panneau ou un formulaire séparé que vous formerez.ShowDialog().
  2. Créez un rappel pour la publication réussie du message OAuth par le navigateur et un message pour le rejet. Ne pas oublier de vérifier pour un FailWhale.
  3. Dans le rappel, vous fermez le panneau ou formez et stockez le jeton.

est ici un bon aperçu des exemples de code et tout: http://tweetsharp.com/2009/04/how-to-authenticate-a-desktop-application-with-oauth/

+0

Le lien que vous présentez me donne maintenant un 404. Est-ce que l'API Twitter est maintenant fermée et ne s'applique plus? –

1

est ici une solution simple, mis en œuvre comme un ensemble de scripts PHP pour exécuter à partir de la ligne de commande. Bien documenté et expliqué, avec une option "verbeuse" utile pour le débogage.

http://nullinfo.wordpress.com/oauth-twitter/

Questions connexes