当前位置:  开发笔记 > Android > 正文

如何让Twitter API遵守OAuth的回调参数?

如何解决《如何让TwitterAPI遵守OAuth的回调参数?》经验,为你挑选了1个好方法。

我正在开发一款理想情况下使用OAuth与Twitter通信的iPhone应用程序.我知道有很多人使用UIWebView在他们的应用程序内部进行OAuth工作流程,但我不同意这一点,并采用Pownce方法.

问题是,Twitter有使用引脚号码处理桌面应用程序的整个方案.当我在Twitter上注册我的应用程序时,他们有一个Web表单,询问我是否是桌面或Web客户端.如果我选择桌面客户端,当我尝试让用户授权时,我可以设置oauth_callback参数,但Twitter会在授权后忽略它并显示一个密码.如果在twitter的表单上,我指定我是一个Web客户端,它要求我在授权后输入一个重定向到的URL.而且,由于我正在使用特定于iPhone应用程序的URL方案,因此它们的Web表单在验证时失败,因为它似乎只接受符合HTTP协议的URL.

所以,似乎我被卡住了 - 我不能说"桌面",因为我不想打扰别针,我不能说"网络"或我不能使用iPhone应用程序URL.对此有何解决方案?



1> Nathan de Vr..:

从你的问题:

我知道有很多人使用UIWebView在他们的应用程序内部进行OAuth工作流程,但我不同意这一点,并采用Pownce方法.

Pownce文章建议退出您的应用程序并打开Mobile Safari来执行身份验证步骤是有问题的,并且他们开始接受用户的错误评论以便这样做.他们的失败率也在40%左右.

Pownce的解决方案是在您的应用程序中使用UIWebView,因此我觉得您可能误解了他们的建议.话虽如此,他们确实将此标记为"天真"的解决方案,并继续提出一堆理论上的"理想"解决方案.

您可能没有意识到的另一点是桌面应用程序(使用"带外"/密码方法) Web应用程序需要在嵌入式或外部浏览器中打开Twitter站点.

所以你在iPhone上有两个选择:

    在UIWebView中打开twitter.com,指定无oauth_callback参数或oauth_callback=oob启动基于引脚的带外流.然后,用户需要使用iPhone的复制粘贴功能复制引脚,手动关闭UIWebView,并将引脚粘贴到您的应用程序中.然后可以将该引脚转换为访问令牌.

    这样做是其他人如何做到的(custom-uri://foo.bar回调参数中的UIWebView + ).

出于显而易见的原因,第一个选项很糟糕,只有在Twitter无法重定向到自定义URI的平台上才有用.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有