为什么80%的码农都做不了架构师?>>>   

建议下载demo,照着开发文档看

1.首先要配置SDK,官网下载的,两个jar。

2.配置AndroidManifest.xml 的权限和两个Activity

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.iwtle.www.englishstudy">
<!--用户需要的权限--><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- SDK2.1新增获取用户位置信息 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.GET_TASKS" /><applicationandroid:allowBackup="true"android:icon="@mipmap/studylogo"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".ui.LoginActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
<!--需要配置的两个Activity--><activityandroid: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="Tencent101368807" /><!--这个APPid需要替换成自己的--></intent-filter></activity><activityandroid:name="com.tencent.connect.common.AssistActivity"android:configChanges="orientation|keyboardHidden"android:screenOrientation="behind"android:theme="@android:style/Theme.Translucent.NoTitleBar" /></application></manifest>

3.编写登录的代码。

3.1首先需要在onCreate初始化sdk

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTencent = Tencent.createInstance("101368807", this.getApplicationContext());}

3.2创建回调的函数。

IUiListener loginListener = new BaseUiListener() {@Overrideprotected void doComplete(JSONObject values) {Log.d("SDKQQAgentPref", "AuthorSwitch_SDK:" + SystemClock.elapsedRealtime());System.out.println("123456" + values.toString());}};private class BaseUiListener implements IUiListener {@Overridepublic void onComplete(Object response) {if (null == response) {return;}JSONObject jsonResponse = (JSONObject) response;if (null != jsonResponse && jsonResponse.length() == 0) {return;}doComplete((JSONObject) response);System.out.println("123456789" + response.toString());}protected void doComplete(JSONObject values) {}@Overridepublic void onError(UiError e) {System.out.println("12345678910" + e.errorDetail);}@Overridepublic void onCancel() {System.out.println("12345678910" + "onCancel");}}

3.3还需要一个回调的方法(如果要成功接收到回调)

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {Log.d("12346", "-->onActivityResult " + requestCode + " resultCode=" + resultCode);if (requestCode == Constants.REQUEST_LOGIN ||requestCode == Constants.REQUEST_APPBAR) {Tencent.onActivityResultData(requestCode, resultCode, data, loginListener);}super.onActivityResult(requestCode, resultCode, data);}

3.4最后登录的代码

    public void Login(View view) {System.out.println("我要登录了!!");if (!mTencent.isSessionValid()) {mTencent.login(this, "all", loginListener);}}

4.登录页面的整体源码

public class MainActivity extends AppCompatActivity {private Tencent mTencent;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTencent = Tencent.createInstance("101368807", this.getApplicationContext());}public void Login(View view) {System.out.println("我要登录了!!");if (!mTencent.isSessionValid()) {mTencent.login(this, "all", loginListener);}}protected void onActivityResult(int requestCode, int resultCode, Intent data) {Log.d("12346", "-->onActivityResult " + requestCode + " resultCode=" + resultCode);if (requestCode == Constants.REQUEST_LOGIN ||requestCode == Constants.REQUEST_APPBAR) {Tencent.onActivityResultData(requestCode, resultCode, data, loginListener);}super.onActivityResult(requestCode, resultCode, data);}IUiListener loginListener = new BaseUiListener() {@Overrideprotected void doComplete(JSONObject values) { //获取数据Log.d("SDKQQAgentPref", "AuthorSwitch_SDK:" + SystemClock.elapsedRealtime());System.out.println("123456" + values.toString());}};private class BaseUiListener implements IUiListener {@Overridepublic void onComplete(Object response) { //登录成功获取数据if (null == response) {return;}JSONObject jsonResponse = (JSONObject) response;if (null != jsonResponse && jsonResponse.length() == 0) {return;}doComplete((JSONObject) response);System.out.println("登录成功" + response.toString());Toast.makeText(MainActivity.this, "登录成功" + response.toString(), Toast.LENGTH_LONG).show();}protected void doComplete(JSONObject values) {}@Overridepublic void onError(UiError e) {//登录出错System.out.println("12345678910" + e.errorDetail);}@Overridepublic void onCancel() { //取消登录System.out.println("12345678910" + "onCancel");}}}

5.demo的网址。

链接:http://pan.baidu.com/s/1gfr6eDt 密码:2trk

我发现再好的教程,如果你只是搜到,而不去敲一遍。永远都不会去好好写的。

转载于:https://my.oschina.net/TAOH/blog/809448

QQ第三方授权登录(带详细源码)相关推荐

  1. QQ第三方授权登录+阿里云短信服务

    一.简介 目前我们使用的web系统在登陆功能开发时,不仅仅只是单纯的使用表单填写用户注册信息来进行注册,参考我们现在使用的其他软件存在以下登录情况. 使用QQ/微信等第三方平台进行授权登录 使用短信验 ...

  2. (二)C# winform C/S WebBrowser qq第三方授权登录

    紧接上一篇,qq的授权登录,跟微信相似,不同的地方是: 1 申请appid与appkey的时候,注意填写回调地址. 2 这里可以在WebBrowser的是Navigated事件中直接得到Access ...

  3. 自动化测试如何保持登录状态_自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码...

    一.什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage ...

  4. 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字 ...

  5. 对第三方社会化 sdk 的集成和二次封装,比如第三方授权登录、第三方分享等

    SocialSDKAndroid 项目地址:tsy12321/SocialSDKAndroid 简介:对第三方社会化 sdk 的集成和二次封装,比如第三方授权登录.第三方分享等 对第三方社会化 sdk ...

  6. 微信第三方授权登录并在h5中发起支付

    概述:微信第三方授权登录,授权后转向h5页面直接发起支付,应用场景:智能售货机,用户扫码直接支付并记录用户信息. 一.业务配置项 1.1注册微信公众号,微信商户号 微信公众号需要认证,认证后才会有相关 ...

  7. 微信第三方授权登录之oauth开发

    背景: 首先copy下别人讲解的oauth2.0验证授权的一些背景知识: 1) 传统的注册登陆方式: 如果你是一个新用户,则点击新用户注册按钮,进入由简书提供的注册页面,进行用户名密码验证和设置 然后 ...

  8. Springboot基于justAuth实现第三方授权登录

    1. 简介 随着科技时代日渐繁荣,越来越多的应用融入我们的生活.不同的应用系统不同的用户密码,造成了极差的用户体验.要是能使用常见的应用账号实现全应用的认证登录,将会更加促进应用产品的推广,为生活增加 ...

  9. OAUTH之 钉钉第三方授权登录

    文章目录 OAUTH之钉钉第三方授权登录 前期用到的工具 获取access_token 请求地址 请求方法 响应 扫码 / 使用账号密码 -- 获取 临时 code 参数重要说明 直接访问 扫码登录 ...

最新文章

  1. 年度数据与月度数据转化_山东工会新媒体传播力指数2020年12月数据、年度数据出炉...
  2. shell脚本编程规范与变量
  3. 总奖池31万!智能零售柜商品识别,“信也科技杯”算法大赛启动
  4. AJAX 带有 取消功能的 UpdateProgress
  5. 2017.10.10 杀人游戏 思考记录
  6. 九种设计模式在Spring中的应用
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的垃圾分类管理系统
  8. fltk在UbuntuLinux中搭建和测试-《C++程序设计原理与实践》Chapter12:显示模型 环境构建...
  9. 简单python脚本实例-超实用的 30 段 Python 案例
  10. css选择器总结(内附实例及截图)
  11. 联想拯救者y7学计算机可以用吗,2018什么笔记本电脑好 联想拯救者y7000评测
  12. 使用图算法实现地铁线路规划
  13. shell 获取当前时间
  14. 苹果开发者账号可以创建多少测试证书_配置2020苹果开发者账号证书的简要说明...
  15. logstash 导入数据,查看每秒导入的数据量及已导入数量和已导入时间
  16. Q1成绩:华为可穿戴设备增幅亮眼,Uber亏损10亿美元!
  17. 如何在微信h5拉起支付宝支付界面
  18. 转专业计算机常见的名词解释,迎鲜肉第9弹|大学生活必知名词解释
  19. linux下 firefox安装flash插件
  20. 基于JAVA电影院购票系统计算机毕业设计源码+系统+lw文档+部署

热门文章

  1. OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU
  2. python-函数之命名空间作用域
  3. 批处理-延迟环境变量扩展
  4. ASP.NET使用UpdatePanel实现AJAX
  5. 基于余弦相似性的指纹匹配算法在WIFI室内定位上的应用(转)
  6. VS2010打开旧版本MFC工程无对话框
  7. MVC3基础嵌套总结
  8. Q136:PBRT-V3,双向路径追踪(Bidirectional Path Tracing)(16.3章节)
  9. 问题四十一:怎么用ray tracing画任意圆柱面(generalized cylinder)
  10. 大数据分析平台的核心价值