QQ原生第三方登录
2017-08-18 12:05
399 查看
QQ 第三方登录
就先简单的写点关于 QQ 第三方登录。第一步:
打开你的百度搜索 腾讯的开发者平台。注册账号,下载QQ的SDK和jar包。
下载了压缩包之后会有三个jar,直接用这两个就行了。
第二步:配置AndroidManifest
先添加权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
然后在 application 节点中 添加两个 Activity
<activity android:name="com.tencent.tauth.AuthActivity" android:noHistory="true" android:launchMode="singleTask" > <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="tencent你的AppId" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize" />
然后把
你的Appid写在这里。这就配置完了。
第三步:
这里布局比较简单就不给大家看了。
//定义控件 private Button btn; private TextView tt; private Tencent myten; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.main_btn); tt = (TextView) findViewById(R.id.main_text); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //第三方登录QQ的方法 loginQQ(); } }); } //登录的方法 public void loginQQ(){ //创建一个腾讯对象实例 //参数1: 就是你的AppId //参数2: Application的实例 myten = Tencent.createInstance("1105602574",getApplicationContext()); //调用登录QQ 的API //参数1:上下文对象 //参数2:权限,这里 用 “all” 就是全部的权限 //参数3:回调接口 myten.login(MainActivity.this,"all",new BaseUilistener(){ @Override public void docomp(JSONObject values) { initOpenidAndToken(values); } }); } //回调方法 不重写这个方法 可能会获取不到数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(myten != null){ Tencent.onActivityResultData(requestCode,resultCode,data,new BaseUilistener()); } super.onActivityResult(requestCode, resultCode, data); } //初始化Token 的方法 public void initOpenidAndToken(JSONObject jsonObject) { try { String token = jsonObject.getString(Constants.PARAM_ACCESS_TOKEN); String expires = jsonObject.getString(Constants.PARAM_EXPIRES_IN); String openId = jsonObject.getString(Constants.PARAM_OPEN_ID); if (!TextUtils.isEmpty(token) && !TextUtils.isEmpty(expires) && !TextUtils.isEmpty(openId)) { myten.setAccessToken(token, expires); myten.setOpenId(openId); } } catch(Exception e) { } } //创建一个类 实现 回调接口 class BaseUilistener implements IUiListener{ //登录成功就会 回调这个方法 @Override public void onComplete(Object o) { //这里可以获取到 openid //将参数直接转型为 JSONObject 即可 JSONObject data = (JSONObject)o; //调用回调方法 docomp((JSONObject)o); //若想得到 登录人的 用户名 头像 等数据 //要先创建 一个 UserInfo 的 实例 UserInfo userInfo = new UserInfo(MainActivity.this,myten.getQQToken()); //调用 API 这里就跟外边一样了 写自己的逻辑就行了 userInfo.getUserInfo(new IUiListener() { //成功的方法 @Override public void onComplete(Object o){ Log.e("xx",o.toString()); } //错误的方法 @Override public void onError(UiError uiError) { } //取消的方法 @Override public void onCancel() { } }); } //失败了 回调的方法 @Override public void onError(UiError uiError) { Log.e("aa","失败了"); } //取消了 回调的方法 @Override public void onCancel() { Log.e("xx","取消了"); } //为了接口回调 自己定义方法 public void docomp(JSONObject values){ } }
相关文章推荐
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- iOS原生QQ第三方登录
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- Android开发接入第三方原生SDK实现QQ登录
- Android-使用Android Studio实现第三方QQ登录
- QQ第三方登录
- 第三方QQ登录
- 第三方登录之QQ登录(二)——OAuth2.0处理流程介绍(以QQ登录为例)
- tp框架实现第三方QQ快捷登录
- Android 第三方QQ登录 踩过的坑
- 微信qq,新浪等第三方授权登录的理解
- QQ第三方登录
- 使用OAuth2.0协议的github、QQ、weibo第三方登录接入总结
- QQ第三方登录 错误码报110406
- QQ第三方登录的应用
- 友盟第三方QQ登录
- 第三方登录之QQ登录集成(一)