新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1.登录公众账号设置OAuth2.0 2.设置菜单按钮URL为OAuth链接 3.页面后台获取: public String getopenId() { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html"); String code = request.getParameter("code"); String urlstr = "https://api、weixin、qq、com/sns/oauth2/access_token?appid=appIdsecret=secretcode=" + code + "grant_type=authorization_code"; JSONObject json; try { json = JSONObject.fromObject(HTTPTools.postToGetJson(urlstr)); openId = json.getString("openid"); } catch (Exception e) { // e.printStackTrace(); return ""; ... 1.登录公众账号设置OAuth2.0 2.设置菜单按钮URL为OAuth链接 3.页面后台获取:public String getopenId() { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html"); String code = request.getParameter("code"); String urlstr = "https://api、weixin、qq、com/sns/oauth2/access_token?appid=appIdsecret=secretcode=" + code + "grant_type=authorization_code"; JSONObject json; try { json = JSONObject.fromObject(HTTPTools.postToGetJson(urlstr)); openId = json.getString("openid"); } catch (Exception e) { // e.printStackTrace(); return ""; } return openId; }
坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都隧道混凝土搅拌车小微创业公司专业提供成都定制网站营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。
Android实现第三方QQ登陆的开放流程为:
一. QQ登录目前采用OAuth2.0标准协议来进行用户身份验证和获取用户授权。整个流程如下所述,这里比如一个应用A
可以使用QQ账户登陆。
1. 用户访问客户端的应用,试图操作用户存放在服务提供方的资源。比如用户用QQ账户登录 应用 A程序,同时可以获
得用户昵称头像等保存在腾讯服务器的用户信息。
2. 输入QQ账号后,应用A后向服务提供方 (腾讯) (Request Token)。 请求一个临时令牌
3. 服务提供方 (腾讯)(应用A)的身份后,授予一个临时令牌。验证客户端
4. 客户端(应用A)获得临时令牌后,将用户引导至服务提供方(腾讯)的授权页面请求用户授权。在这个过程中将临时令牌和客户端的 回调连接发送给服务提供方(腾讯)。
5. 用户在服务提供方(腾讯)的网页上输入用户名和密码,然后授权该客户端(应用A)访问所请求的资源。
6. 授权成功后,服务提供方(腾讯)引导用户返回到客户端(应用A)提供的回调页面。
7. 客户端(应用A)根据临时令牌从服务提供方(腾讯)那里获取访问令牌 (Access Token)。
8. 根据访问令牌 (Access Token)获得对应用户身份的openid,
9. 然后客户端(应用A)根据访问令牌 (Access Token)与openid调用OpenAPI,来请求访问或修改用户授权的资源(比如昵称用户头像等经过用户授权的信息)。
10.拿到访问令牌 (Access Token)之后,客户端(应用A)可以保存起来,下次就不用再向服务提供方(腾讯)请求授权,直接就可以使用该账户授权的资源,相当于保存了用户名和密码,但是真正的用户名和密客户端(应用A)并不知道。
比如一个信息发布的网站,可以使用QQ账号登录,用户通过安全页面输入QQ账号信息后显示登陆成功,同时询问用户
是否允许该网站使用用户的一些信息,比如资料,相册等,经过用户确认后该网站可以拿到用户授权的信息。同时拿到访
问令牌 (Access Token),以后该网站就可以用这个访问获得该用户的这些授权信息,而不需要再次输入账户信息。一般该
网站也要提供删除这个访问令牌的入口。这样就可以很方便的把用户愿意提供的信息拿到这个信息发布网站使用,而用户
不需要再次登记录入。
二.QQ 为Android移动设备开发提供QQ登陆的开发包,对上述的过程进行的封装,对开发者来说可以方便的使用。要真正开发一个使用QQ账户登录的App,就需要在腾讯社区开放平台注册应用, 申请对应的 appid 和appkey ,这个开发App 时候要用到。
1. 可以在腾讯开放API站点下载最新的QQ登录API库文件和Demo。
2.下载后的Demo工程如下,导入了库文件tencent_openapi.jar如下图一所示。
Demo介绍了两种登陆方式,手机浏览器和WebView,传入不同的参数,进入不同的登录方式,然后输入账户信息后会
根据用户选择返回不同的结果。开发者可以参考这些对应的代码即可完成授权登录的功能开发。
1. 下载SDK。
SDK下载
点击SDK for 移动应用接入
SDK列表
直接点击Android_SDK_V3.1.0 就可以下载
2. 导入jar包
下载完成后是个压缩包,解压后的结果就是下面这个样子,我下载的版本是3.1.0,如果你下载的版本不是这个版本或许有所不同。
解压
将jar文件夹下的两个jar包导入到android studio中,
导入jar包
然后右击jar包,在菜单的下面会有个"Add as Library..."点击它,将这两个jar包加入到lib库。
3. 配置AndroidManifest.xml文件
刚刚导入的jar包里有已经实现好的Activity(就是点击使用QQ登录后弹出的授权Activity),所以需要在清单文件中配置一下
在application节点下添加两个activity节点,内容如下:
activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true"
intent-filter
action android:name="android.intent.action.VIEW" /
category android:name="android.intent.category.DEFAULT" /
category android:name="android.intent.category.BROWSABLE" /
data android:scheme="222222" /
/intent-filter
/activity
activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
/activity
注意!其中的 data android:scheme=”222222” 你需要将这个值替换为你自己创建的应用的appid。222222是腾讯给的测试appid,仅能够测试使用。
当然了,使用qq登录少不了权限
uses-permission android:name="android.permission.INTERNET" /
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /
1.登录公众账号设置OAuth2.0
2.设置菜单按钮URL为OAuth链接 3.页面后台获取:
public String getopenId() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
String code = request.getParameter("code");
String urlstr = "https://api、weixin、qq、com/sns/oauth2/access_token?appid=appIdsecret=secretcode=" + code + "grant_type=authorization_code";
JSONObject json;
try {
json = JSONObject.fromObject(HTTPTools.postToGetJson(urlstr));
openId = json.getString("openid");
} catch (Exception e) {
// e.printStackTrace();
return "";
}
return openId;
}
调用第三方提供的sdk接口,比如说淘宝,官方会提供一个库,你把库引入,然后调用接口就可以了