在OAuth上与Twitter一起使用身份验证和API的工作流程

在OAuth上与Twitter一起使用身份验证和API的工作流程,twitter,oauth,desktop-application,Twitter,Oauth,Desktop Application,我对所有这些OAuth bruhaha有点困惑,因为我能找到的所有示例都是针对web应用程序的,而没有一个是针对桌面应用程序的 我了解Web应用程序的工作流程,但这包括Web应用程序和twitter之间的一些重定向 在桌面应用程序中如何做到这一点 重定向是如何工作的 是否必须包含Web浏览器对象 有办法解决这个问题吗 有人能告诉我资源而不是完整的解决方案吗 谢谢我不确定您使用的是哪种语言,但名为Tweetsharp的.NET Twitter库发布了一篇关于从桌面应用程序使用Tweetshar

我对所有这些OAuth bruhaha有点困惑,因为我能找到的所有示例都是针对web应用程序的,而没有一个是针对桌面应用程序的

我了解Web应用程序的工作流程,但这包括Web应用程序和twitter之间的一些重定向

  • 在桌面应用程序中如何做到这一点
  • 重定向是如何工作的
  • 是否必须包含Web浏览器对象
  • 有办法解决这个问题吗
  • 有人能告诉我资源而不是完整的解决方案吗

谢谢

我不确定您使用的是哪种语言,但名为Tweetsharp的.NET Twitter库发布了一篇关于从桌面应用程序使用Tweetsharp并通过OAuth进行身份验证的帖子。看见如果你不使用.NET,那么它可能会激发你可以做些什么


基本上,tweetsharp所做的是将浏览器启动到认证URL,然后等待用户返回。除了类似的东西(或者包括某种WebBrowser控件,以便在您自己的窗口中启动身份验证URL),我不知道有什么其他方法可以做到这一点。

在向其他一些程序员询问了一些关于此主题的问题后,看起来这仍然是一个正在进行的讨论,隧道尽头没有可见光

但对于对正在进行的讨论感兴趣的人来说,这里有一个最好的链接:

我已经看到一些桌面应用程序通过有效地将浏览器嵌入到他们的程序中来解决这个问题,因此他们可以打开应用程序内浏览器窗口,让您进行登录和授权。这让我觉得有点像是欺骗或是目的的失败,因为你最终还是在应用程序中输入了你的ID和密码

我想到的一种可能性是,您的桌面应用程序可以在其中嵌入一个迷你HTTP服务器。然后,它启动默认浏览器来执行授权,带有一个类似的回调URL,然后只需监听它

这样行吗

不确定您将如何处理控制台应用程序。。。产生一个副本

  • 在应用程序中包含WebBrowser控件。将其放在您将要形成的面板或单独表单中。ShowDialog()
  • 为浏览器成功发布OAuth创建一个回调,为拒绝创建一个回调。别忘了检查有无故障
  • 在回调中,关闭面板或窗体并存储令牌

  • 这里有一个很好的概述,包括示例代码和所有内容:

    这是一个简单的解决方案,作为一组PHP脚本实现,用于从命令行运行。有很好的文档记录和解释,有一个有用的“详细”调试选项


    谢谢你,伙计,但这仍然需要我自己去等待一些外部应用程序。我需要在我的应用程序中包含所有内容。在你的桌面应用程序中有登录名和密码是有意义的,见鬼,告诉我一个没有。。。这并不能解决我的问题,但还是要谢谢你。是的,我理解。但是,对于桌面应用程序中的OAuth,没有其他选项。OAuth的全部要点是不要让你的应用程序请求凭据。HTTP服务器可以工作。我将不得不调查早些时候引起的localhost问题,以确认这仍然是可能的。谢谢你的建议,看起来很有趣。你找到解决这个问题的办法了吗?我也在做同样的事情——构建一个桌面twitter应用程序,然后做噩梦!请张贴您的解决方案或代码,如果您这样做了!不幸的是,我得到的问题比答案多。我有3到4种方法。但所有这些都包括从讨厌的用户到邪恶的程序员黑客。这只是解决一些原本不被认为是的问题的办法。啊哈!!!!你能帮我移开这个心理障碍吗。。。我不知道如何处理pin码?!我正在将用户转移到web浏览器控件以登录,然后他们单击“提交”,它将转到pin码…但我不知道如何处理pin码,我也不知道如何让我的应用程序知道用户已单击“提交”,以便表单可以自行关闭!有什么想法吗?我只是想要一个访问令牌请=[@xoxo:我自己还没有试过。我会试试Delphi/FreePascal,然后我会带着一些答案回来。在我的“对话”之后有了xoxo,看起来一个可能的答案可能会比我的更好。我会等xoxo做一些事情。你现在的链接给了我一个404。是不是Twitter API现在关闭了,不再适用了?