账号申请什么的我就在这里略过了!(相信大家看看文档都能够处理的)本篇博客仅作引导用--主要提供给哪些不知道怎样入手的朋友。(如果需要更加强大的功能大家可以看一下开放平台上的文档,上面都有的)

使用QQ登录需要在QQ互联开放平台上注册一个账号并提交审核:http://connect.qq.com/intro/login

使用新浪微博登录需要到新浪微博开放平台注册账号:http://open.weibo.com/development/mobile

新浪微博登录的处理代码:(需要下载新浪微博的SDK)

import java.io.ByteArrayOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat; import org.json.JSONException;
import org.json.JSONObject; import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.Toast; import com.hd.client.BindActivity;
import com.sina.weibo.sdk.auth.Oauth2AccessToken;
import com.sina.weibo.sdk.auth.WeiboAuthListener;
import com.sina.weibo.sdk.auth.WeiboAuth.AuthInfo;
import com.sina.weibo.sdk.exception.WeiboException;
import com.sina.weibo.sdk.net.RequestListener;
import com.sina.weibo.sdk.widget.LoginButton; /**
* 新浪微博登录工具类
* @author yw-tony
*
*/
public class SinaLoginUtil {
private static final String appkey = "你的appkey";
// http://www.sina.comhttp://www.fortrun.com
private static final String redirectUrl = "http://www.fortrun.com";
private static final String SCOPE = "email,direct_messages_read,direct_messages_write,"
+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
+ "follow_app_official_microblog," + "invitation_write";
/** 登陆认证对应的listener */
private AuthListener mLoginListener = new AuthListener();
/** 登出操作对应的listener */
private LogOutRequestListener mLogoutListener = new LogOutRequestListener();
private Context context;
private AuthInfo authInfo = null;
public String token = ",";private SinaLoginUtil(){}
private static SinaLoginUtil instance = new SinaLoginUtil();
public static SinaLoginUtil getInstance(){
return instance;
}
public void initSina(Context context,LoginButton loginButton){
this.context = context;
// 创建授权认证信息
authInfo = new AuthInfo(context, "你的appkey",redirectUrl, SCOPE);
loginButton.setWeiboAuthInfo(authInfo, mLoginListener);
}
/**
* 登入按钮的监听器,接收授权结果。
*/
private class AuthListener implements WeiboAuthListener {
@Override
public void onComplete(Bundle values) {
final Oauth2AccessToken accessToken = Oauth2AccessToken.parseAccessToken(values);
if (accessToken != null && accessToken.isSessionValid()) {
/*String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(
new java.util.Date(accessToken.getExpiresTime()));*/
// String format = getString(R.string.weibosdk_demo_token_to_string_format_1);
// mTokenView.setText(String.format(format, accessToken.getToken(), date));
AccessTokenKeeper.writeAccessToken(context, accessToken);
}
} /**
* 登出按钮的监听器,接收登出处理结果。(API 请求结果的监听器)
*/
private class LogOutRequestListener implements RequestListener {
@Override
public void onComplete(String response) {
if (!TextUtils.isEmpty(response)) {
try {
JSONObject obj = new JSONObject(response);
String value = obj.getString("result"); if ("true".equalsIgnoreCase(value)) {
AccessTokenKeeper.clear(context);
// mTokenView.setText(R.string.weibosdk_demo_logout_success);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
} @Override
public void onComplete4binary(ByteArrayOutputStream responseOS) {
// Do nothing
} @Override
public void onIOException(IOException e) {
// mTokenView.setText(R.string.weibosdk_demo_logout_failed);
} @Override
public void onError(WeiboException e) {
// mTokenView.setText(R.string.weibosdk_demo_logout_failed);
}
}
}

QQ登录:

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject; import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast; import com.google.gson.JsonObject;
import com.hd.client.BindActivity;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError; /**
* 使用QQ登陆工具类
* @author yw-tony
*
*/
public class QQLoginUtil {
public String token = ",";
public Tencent tencen = null;
private static String APP_ID = "你的Appid";
private Context context;
private QQLoginUtil(){}
private static QQLoginUtil instance = new QQLoginUtil();
public static QQLoginUtil getInstance(){
return instance;
} public void initTencen(Context context){
tencen = Tencent.createInstance(APP_ID, context);
this.context = context;
} public void qqLogin(Activity activity){
if (!tencen.isSessionValid()) {
IUiListener listener = new BaseUiListener() {
@Override
protected void doComplete(JSONObject values) {
/*updateUserInfo();
updateLoginButton();*/
}
};
tencen.login(activity, "all", listener);
} else {
tencen.logout(activity);
// updateUserInfo();
// updateLoginButton();
}
}
private class BaseUiListener implements IUiListener { @Override
public void onComplete(JSONObject response) {
// Util.showResultDialog(MainActivity.this, response.toString(), "登录成功");
Log.e("响应字符串", response.toString());
doComplete(response);
} protected void doComplete(final JSONObject values) { } @Override
public void onError(UiError e) {
Log.e("错误信息", e.errorDetail);
// Util.toastMessage(MainActivity.this, "onError: " + e.errorDetail);
// Util.dismissDialog();
} @Override
public void onCancel() {
Log.e("取消了当前的登录操作", "取消了当前的登录操作");
// Util.toastMessage(context, "onCancel: ");
// Util.dismissDialog();
}
}
}

Android 使用第三方登录(QQ和新浪微博)的更多相关文章

  1. Android UmengShareSDK第三方登录

    Android UmengShareSDK 第三方登录- 今天就不废话了,集成平台第三方登录.市面上集成平台有shareSDK 和 Ument两种,shareSDK的ipa和服务好些,如果自己研究会很 ...

  2. android实现第三方登录之QQ登录

    首先,当然是在腾讯开放平台(http://open.qq.com/)注册成为开发者,然后获取APP ID 1.下载SDK http://wiki.open.qq.com/wiki/mobile/SDK ...

  3. 第三方登录 QQ登录 人人网登录 新浪微博登录

    http://www.pp6.cn/Index.aspx http://www.pp6.cn/Login.aspx 网站有自己的账号系统,这里使用的第三方登录仅仅是获取第三方账号的唯一id,昵称,性别 ...

  4. 安卓Android第三方登录-QQ登录

    要实现QQ第三方登录,其实只需要一个封装类:QQLoginManager 几乎 三行代码 就实现QQ登录功能 这里先给出Github开源项目地址,项目下有详细的使用说明   下面就开始详细说一说怎么实 ...

  5. Android ShareSDKQQ 第三方登录so easy?

    昨天群里有个群友看到我之前做的那个qq第三方登录怎么做的,于是乎思考了一下,还是决定写一篇博客记录下.事实上都不难的,事实上之前我又写到FaceBook的第三方登录不知道看下这Android集成Fac ...

  6. [置顶] Android ShareSDKQQ 第三方登录so easy?

    昨天群里有个群友看到我之前做的那个qq第三方登录怎么做的,于是乎思考了一下,还是决定写一篇博客记录下,其实都不难的,其实之前我又写到FaceBook的第三方登录不知道看下这Android集成FaceB ...

  7. Android 微信第三方登录(个人笔记)

    今天在写微信登录,花了半天时间搞定.然后写下自己的笔记,希望帮助更多的人...欢迎各位指教. 微信授权登录,官方说的不是很清楚.所以导致有一部分的坑. 微信注册应用平台的应用签名,下载 微信签名生成工 ...

  8. 第三方登录 ----QQ登录

    学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 http://connect.qq.com登入我们自己的QQ号,没有QQ号的小伙伴可以忽略本篇博文分享!

  9. android 第三方登录 --- QQ

    1,jar包 2,配置AndroidManifest.xml <activity android:name=".login.LoginActivity" android:co ...

随机推荐

  1. python学习之老男孩python全栈第九期_day015作业_老男孩Python全9期练习题(面试真题模拟)

    一. 选择题(32分) 1. python不支持的数据类型有:AA. charB. intC. floatD. list 2. Ex = ‘foo’y = 2print(x + y)A. fooB. ...

  2. java队列Queue及阻塞队列

    java队列 接口Queue类在java.util包,定义了以下6个方法 详细查看官方文档https://docs.oracle.com/javase/7/docs/api/java/util/Que ...

  3. 关于DDL、DML和DCL的区别与理解

    2017年5月31日,天气阴.近期事情颇多,心情比较沉重. 端午刚过,早上上课,很多同学还处在端午的疲惫状态中没有回过神来,当然我也不例外.端午奔波三天,加上毕设的事情,可以说身心俱疲.状态不佳,整理 ...

  4. bower 和 npm 的区别详细介绍

    摘要: 本文讲的是bower 和 npm 的区别详细介绍, 简单的说,npm是进行后端开发中,使用的模块安装工具,而bower,是前端的模块安装工具. 比如,在安装express,socket.io时 ...

  5. 编译64位cu文件的设置

     作者:朱金灿 来源:http://blog.csdn.net/clever101 CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运 ...

  6. MariaDB MariaDB、MySQL存储过程、游标基础应用举例说明

    MariaDB.MySQL存储过程.游标基础应用举例说明 by:授客 QQ:1033553122 测试环境: MariaDB-10.0.19-centos7-x86_64 实践操作: # 创建测试数据 ...

  7. Java 装饰器模式详解

    转载请注明出处:http://blog.csdn.net/zhaoyanjun6/article/details/56488020 前言 在上面的几篇文章中,着重介绍了Java 中常见的 IO 相关知 ...

  8. Mac配置SDK+JDK环境

    1.打开默认终端设备,编辑.bash_profile文件,命令:vi .bash_profile 2.执行,打开文件,编辑,配置环境命令如下: ①JDK环境:export JAVA_HOME=/lib ...

  9. 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归

    机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...

  10. Linux 同步时间 设置时区

    简化版 同步时间 #直接用域名同步中国上海时间 ntpdate -u ntp.api.bz # hwclock --hctosys 或者 # clock --hctosys hc代表硬件时间,sys代 ...