Android第三方登录集合(QQ、微信、微博、百度、facebook、twitter)
2017-10-23 12:48
761 查看
分开依赖,需要哪个集成哪个,不捆绑在一起。
微信:到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/注册帐号并创建应用即可获取。
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
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-coreQQ: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、微博第三方登录
- Android使用友盟集成QQ、微信、微博等第三方登录
- Android使用ShareSDK集成QQ、微信、微博等第三方登录
- 前端html第三方登录集合,微信,微博,QQ
- Android使用友盟集成QQ、微信、微博等第三方分享与登录方法详解
- Android ShareSDK第三方登录(分别有新浪、QQ、微信、Facebook、Linkedin、Google等等)
- 前端第三方登录集合,QQ、微信、微博
- Android 实现QQ、微信、新浪微博和百度第三方登录
- Android使用ShareSDK集成QQ、微信、微博等第三方登录
- 前端html第三方登录集合,微信,微博,QQ
- Android下微信、微博、qq、百度第三方登陆
- Android 第三方QQ、微信、微博登录分享
- Android使用shareSDK第三方登录(qq,微信,微博)
- Android 使用shareSDK进行第三方登录失败解决方法(微信,微博,qq)
- [置顶] Android使用友盟集成QQ、微信、微博等第三方登录
- android第三方(qq、微信、微博)登录和分享
- Android友盟集成QQ、微信、微博等第三方登录与分享
- 前端html第三方登录集合,微信,微博,QQ
- QQ、微信、新浪微博和百度第三方登录
- 【android】第三方集成之——QQ登录,微博登陆