重定向Android REST客户端的\u URI
我正在android上构建一个REST客户端,以便与Bitbucket API通信。 我对OAUTH2.0有问题重定向Android REST客户端的\u URI,android,rest,oauth-2.0,bitbucket-api,Android,Rest,Oauth 2.0,Bitbucket Api,我正在android上构建一个REST客户端,以便与Bitbucket API通信。 我对OAUTH2.0有问题 从Bitbucket提供的 “消费者”以获取客户端ID(密钥)和用于 你的android应用程序 在消费者创建表单中,有一个“回调URL”(我理解为Bitbucket将访问的网页或位置) 在用户完成对应用程序授予权限后,将其带到 (即登录) 在我的安卓应用程序中,我希望安卓设备在用户授予权限后返回到我的应用程序(例如,你如何使用谷歌帐户登录网站,在谷歌的权限页面上填写凭据后,你将被
- 从Bitbucket提供的 “消费者”以获取客户端ID(密钥)和用于 你的android应用程序
- 在消费者创建表单中,有一个“回调URL”(我理解为Bitbucket将访问的网页或位置) 在用户完成对应用程序授予权限后,将其带到 (即登录)
- 在我的安卓应用程序中,我希望安卓设备在用户授予权限后返回到我的应用程序(例如,你如何使用谷歌帐户登录网站,在谷歌的权限页面上填写凭据后,你将被带回到原来的页面)
- 将此添加到在manifest.xml中进行登录的活动中
- 将此发送到Bitbucket
private final String redirectUri = "your://redirecturi"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); Button loginButton = (Button) findViewById(R.id.loginbutton); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent( Intent.ACTION_VIEW, //Uri.parse("" + "/login" + "?client_id=" + clientId + "&redirect_uri=" + redirectUri)); Uri.parse("https://bitbucket.org/site/oauth2/authorize" + "?client_id=" + clientId + "&redirect_uri=" + redirectUri)); startActivity(intent); } }); }
-我如何在Bitbucket消费者对象和我的应用程序请求中配置重定向URI或回调URL,以确保android设备返回到我的应用程序,从而我的应用程序可以捕获来自Bitbucket的响应(此响应应具有我需要的访问令牌).一种简单的管理方法是使用
WebView
而不是通过意图操作OAuth链接。实际上,只要在WebView中重定向,您就可以检查url。为此,您必须覆盖
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url)
当您被重定向到另一个链接时(或者在本例中是您的回调uri)您可以检查或比较所获得的url并进行相应的操作。谢谢。您能告诉我在我的特殊情况下如何实现此功能吗?请查看此示例。首先,使用webview获取oauth令牌,然后将其用于向api发出请求,并保存在SharedReferences中。您可以找到更详细的解决方案。谢谢你的帮助。我自己找到了方法,不需要使用WebView,但我认为你的主意不错。