Android第三方登录集合(QQ、微信、微博、百度、facebook、twitter)
来源:互联网 发布:优化发展环境讲话 编辑:程序博客网 时间:2024/06/08 00:53
- 分开依赖,需要哪个集成哪个,不捆绑在一起。
Step 1
在根build.gradle加入jitpack的仓库:
allprojects { repositories { ... maven { url 'https://jitpack.io' } }}
Step 2
在module的build.gradle添加依赖
dependencies { compile 'com.github.fszeng2011:thirdpartlogin-core:1.0' compile 'com.github.fszeng2011:thirdpartlogin-qq:1.0' compile 'com.github.fszeng2011:thirdpartlogin-weixin:1.0' compile 'com.github.fszeng2011:thirdpartlogin-weibo:1.0' compile 'com.github.fszeng2011:thirdpartlogin-baidu:1.0' compile 'com.github.fszeng2011:thirdpartlogin-facebook:1.0' compile 'com.github.fszeng2011:thirdpartlogin-twitter:1.0'}
Step 3 —-(微信)
在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自WXEventActivity,内容不需要写。
Step 4 —-(微信)
在AndroidManifest.xml添加如下:
<activity android:theme="@android:style/Theme.NoDisplay" android:name=".wxapi.WXEntryActivity" android:exported="true"/>
Step 5
在字符串资源xml文件中添加appid和secret。
<string name="tencent_appid">222222</string><!-- tencent+appid --> <string name="tencent_login_scheme">tencent222222</string><string name="weixin_appid">wxde56b4c4fcd755c7</string><string name="weixin_secret">33702de56b4c4fcd755c76bbf7468943</string><string name="weibo_appkey">345347072</string><string name="baidu_apikey">u10rwmxIpFG8YTXYaGXSI6lV</string><string name="facebook_appkey">875646142592091</string><!-- fb+appid --><string name="facebook_login_scheme">fb875646142592091</string><string name="twitter_apikey">J20TVzE1VihlIt5Vr3XufK6pN</string><string name="twitter_secret">aiaym3F07GpRMsecMrjZ2ocmrI7T0TGXfmEqXebpWrUAciKG0v</string>
获取方法:
QQ:到http://open.qq.com/的应用管理里创建应用即可。
微信:到https://open.weixin.qq.com创建移动应用,需要认证通过的开发者才能开通登录权限。没有开通登录权限是无法调起授权页面的。
微博:到http://open.weibo.com/development/mobile接入应用,回调页填写:https://api.weibo.com/oauth2/default.html,也可以填写自定义的,如果填写了自定义的,在实例化WeiboLogin时需要使用传入回调页链接的构造方法。填写完资料即可完成接入,不需要提交审核即可测试登录。
百度:到http://developer.baidu.com/注册帐号,右上角用户名下拉菜单“应用管理”里创建工程,创建后就有apikey,安全设置里如果启用了“Implicit Grant授权方式”,授权回调页:必须填写,内容填写任意符合uri规则字符串即可。
facebook:到https://developers.facebook.com/注册帐号并添加应用即可获取。
twitter:到https://apps.twitter.com/注册帐号并创建应用即可获取。
示例
public class ThirdLoginActivity extends Activity { @BindView(R.id.btnQQLogin) Button btnQQLogin; @BindView(R.id.btnQQLogout) Button btnQQLogout; @BindView(R.id.iv) ImageView iv; @BindView(R.id.tv) TextView tv; private QQLogin qqLogin; private WeixinLogin weixinLogin; private WeiboLogin weiboLogin; private BaiduLogin baiduLogin; private FacebookLogin facebookLogin; private TwitterLogin twitterLogin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle("第三方登录"); setContentView(R.layout.activity_third_login); ButterKnife.bind(this); qqLogin = new QQLogin(this); weixinLogin = new WeixinLogin(this); weiboLogin = new WeiboLogin(this); baiduLogin = new BaiduLogin(this); facebookLogin = new FacebookLogin(this); twitterLogin = new TwitterLogin(this); } @Override protected void onDestroy() { super.onDestroy(); qqLogin.logout(); weixinLogin.onDestroy(); } @OnClick({R.id.btnQQLogin, R.id.btnQQLogout, R.id.btnWxLogin, R.id.btnWbLogin, R.id.btnBdLogin, R.id.btnFbLogin, R.id.btnTwLogin}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.btnQQLogin: qqLogin.login(this, callback); break; case R.id.btnQQLogout: iv.setImageBitmap(null); tv.setText(""); btnQQLogin.setVisibility(View.VISIBLE); btnQQLogout.setVisibility(View.GONE); qqLogin.logout(); break; case R.id.btnWxLogin: weixinLogin.login(this, callback); break; case R.id.btnWbLogin: weiboLogin.login(this, callback); break; case R.id.btnBdLogin: baiduLogin.login(this, callback); break; case R.id.btnFbLogin: facebookLogin.login(this, callback); break; case R.id.btnTwLogin: twitterLogin.login(this, callback); break; } } private LoginCallback callback = new LoginCallback() { @Override public void onSuccess(int loginType, final UserInfo userInfo, JSONObject origin) { if (loginType == qqLogin.loginType()) { btnQQLogin.setVisibility(View.GONE); btnQQLogout.setVisibility(View.VISIBLE); } tv.setText(""); iv.setImageBitmap(null); tv.append("id: " + userInfo.id + "\n"); tv.append("性别: " + userInfo.gender + "\n"); tv.append("昵称: " + userInfo.nickname + "\n"); tv.append("所在地: " + userInfo.location + "\n"); tv.append("头像: " + userInfo.figureUrl + "\n\n"); tv.append("原始数据\n"); tv.append(origin.toString().replace(",", "\n")); if (!TextUtils.isEmpty(userInfo.figureUrl)) { new Thread() { @Override public void run() { final Bitmap bitmap = ImageUtils.getNetBitmap(userInfo.figureUrl); runOnUiThread(new Runnable() { @Override public void run() { iv.setImageBitmap(bitmap); } }); } }.start(); } } @Override public void onCancel() { showToast("用户取消"); } @Override public void onError(int errorCode, String errorDetail) { showToast(errorDetail); } }; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); qqLogin.onActivityResult(requestCode, resultCode, data); weiboLogin.onActivityResult(requestCode, resultCode, data); facebookLogin.onActivityResult(requestCode, resultCode, data); twitterLogin.onActivityResult(requestCode, resultCode, data); }}
源码:
核心公共部分:https://github.com/fszeng2011/thirdpartlogin-core
QQ:https://github.com/fszeng2011/thirdpartlogin-qq
微信:https://github.com/fszeng2011/thirdpartlogin-weixin
微博:https://github.com/fszeng2011/thirdpartlogin-weibo
百度:https://github.com/fszeng2011/thirdpartlogin-baidu
facebook:https://github.com/fszeng2011/thirdpartlogin-facebook
twitter:https://github.com/fszeng2011/thirdpartlogin-twitter
- Android第三方登录集合(QQ、微信、微博、百度、facebook、twitter)
- 前端第三方登录集合,QQ、微信、微博
- 前端html第三方登录集合,微信,微博,QQ
- Android ShareSDK第三方登录(分别有新浪、QQ、微信、Facebook、Linkedin、Google等等)
- 实现QQ、微信、新浪微博和百度第三方登录(Android Studio)
- 实现QQ、微信、新浪微博和百度第三方登录(Android Studio)
- 实现QQ、微信、新浪微博和百度第三方登录(Android Studio)
- Android 第三方QQ、微信、微博登录分享
- Android微信、QQ、微博第三方登录
- QQ 微信 第三方登录 分享
- QQ微信第三方登录
- 第三方登录——QQ、微信、新浪微博和百度登录
- 第三方登录-[微博、微信、qq] java实现
- QQ/微博/微信第三方网站登录总结整合
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- 未在本地计算机上注册“IBMDADB2.1”提供程序
- iocp 非阻塞Socket异步接收限速
- [bzoj1878][caioj1445][莫队]HH的项链
- 单例模式
- yy娱乐视频swf调用方法
- Android第三方登录集合(QQ、微信、微博、百度、facebook、twitter)
- 【项目实战】---Easyui datagrid detailview使用简介
- Delphi操作Word中的表
- 【JDBC笔记】第三方连接池:DBCP/C3P0
- 引用和指针
- SOCKET中send和recv函数真正在做什么
- 位运算符说明
- ORA-01219:数据库未打开:仅允许在固定表/视图中查询
- C++类型萃取