我正在尝试连接Dropbox API using OAuth2。我使用DropNet作为客户端库并使用Token(隐式授权)流选项。测试代码(与DropNet.Samples.WinForms
大致相同)是一个带有嵌入式浏览器控件的简单对话框,用于显示API登录页面。
我看到的问题是API没有将浏览器重定向到指定的重定向网址(http://localhost
)。在我提供我的凭据并单击允许授予访问权限后,我没有被重定向到localhost,而是被重定向到https://www.dropbox.com/1/oauth2/authorize_submit
,但无法加载(错误404)。重定向的URL上也没有查询参数。我希望通过包含授权代码的查询参数重定向到localhost。
作为参考,登录网址为:https://www.dropbox.com/1/oauth2/authorize?response_type=token&client_id=<blah>&redirect_uri=http://localhost
。
有谁知道我做错了什么?这种行为看起来非常类似于Obtain OAuth2 Access Token for Dropbox Core API with Codenameone's Oauth2 Class中描述的行为,但那里没有直接答案。
答案 0 :(得分:1)
[编辑]
我仍然不知道为什么它不能使用http://localhost
作为重定向网址,但我转而使用@Greg推荐的https://www.dropbox.com/1/oauth2/redirect_receiver
,现在它正常工作。
如果它影响其他人尝试使用DropNet WinForms示例代码,我还必须调整代码以处理嵌入式浏览器中的Navigating
和Navigated
事件,以及{{ 1}},因为浏览器行为似乎因操作系统和浏览器版本而异(不是很大的惊喜)。代码还需要足够智能,一旦检测到重定向就停止导航,因为浏览器可能会从该点继续导航。
最初我通过重定向到Google来修复它,但正如@smarks指出的那样,这不是一个好主意。