android调用第三方api实现用户数授权登录机制详解


今天,怀揣着可以不用自己希望做一个自己喜欢的扇贝客户端的想法,花了一天的时间研究了一下扇贝的开放api,这应该也是自己第一次尝试使用第三方api进行开发,说句话还得感谢扇贝,让我下决心面对那些自己不想做的繁杂的申请步骤,去申请他的api接口。应该说这一次的收获还是蛮大的,不仅熟悉了第三方申请授权的全过程,同时又对http的get以及post方法有了更深的了解。今天这次博客就主要谈谈通过第三方API申请用户授权是怎么一回事。

  过去一直认为,申请用户授权应该是直接将用户名与密码发送给第三方所提供的服务器地址,然后获得对方所反馈的类似token值就可以了,然而真正做下来,这个整个授权过程与我所设想的产别比较大。应该说整个授权应该分为 步骤进行。首先,要在第三方开发者平台上注册你的应用信息,回调地址,然后平台会给与你一个类似身份验证的key值这个key值是和你所注册的app相互绑定的,第二步,在自己的app中使用http 的get方法,利用api提供的接口,并添加自己应用所对应的key值,然后这里第三方服务器会发送回来的是一个html界面也就是第三方的登录界面,第三步就是需要进行授权的用户将在这个界面登录,第四步在用户完成登录并且实现了授权之后,再app注册时注册的回调地址就会发挥作用,第三方服务器将在验证之后,直接post这个url地址并在其中添加需要接受的参数,然后就需要在自己的服务器或是网页上利这个地址,来处理操作。这样就完成了第三方的用户授权操作。具体代码:

Uri uri = Uri.parse(url);   
			    //通过Intent代码Android系统的浏览器  
				   Intent intent = new Intent(Intent.ACTION_VIEW,uri);  
				   startActivity(intent);
这里注意要利用intent通过android系统本身的浏览器打开这个第三方登录网址。同时应该将url转化成uri。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android调用第三方 API 接口,可以通过以下步骤实现: 1. 确认需要调用第三方 API 的接口地址、请求方式、请求参数格式等信息。 2. 在 Android 项目中添加网络权限声明,以便访问外部网络资源。可以在 AndroidManifest.xml 文件中添加以下代码: ``` <uses-permission android:name="android.permission.INTERNET" /> ``` 3. 在 Android 项目中创建一个网络请求对象,可以使用 HttpURLConnection 或者 Volley 等类库。 4. 通过网络请求对象设置请求方法、请求头部、请求参数等信息,并发送请求。 下面以 HttpURLConnection 为例,具体实现步骤如下: ```java // 在后台线程中进行网络请求 new Thread(new Runnable() { @Override public void run() { try { // 创建一个 URL 对象,用于指定 API 接口地址 URL url = new URL("https://api.example.com/path/to/api"); // 创建一个 HttpURLConnection 对象,用于发送网络请求 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 设置请求方法为 GET 或 POST connection.setRequestMethod("GET"); // 设置请求头部信息,例如 API Key、User-Agent 等 connection.setRequestProperty("X-API-Key", "your-api-key"); connection.setRequestProperty("User-Agent", "Android App"); // 设置请求参数,例如 POST 请求需要设置请求体内容 String requestBody = "param1=value1&param2=value2"; OutputStream os = connection.getOutputStream(); os.write(requestBody.getBytes()); os.flush(); os.close(); // 发送网络请求,并获取服务器返回的响应码 int responseCode = connection.getResponseCode(); // 如果请求成功,读取服务器返回的数据 if (responseCode == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder response = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); is.close(); // 处理服务器返回的数据,例如使用 JSON 解析库来解析返回的数据 JSONObject jsonObject = new JSONObject(response.toString()); String result = jsonObject.getString("result"); // 对解析后的数据进行逻辑处理,并根据需要进行展示或者保存 } } catch (Exception e) { e.printStackTrace(); } } }).start(); ``` 需要注意的是,在进行网络请求时,需要在 Android 9.0 以上版本中进行一些额外配置,例如需要使用 HTTPS 协议、需要设置网络安全配置等。可以参考 Android 官方文档进行详细了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值