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

使用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. cmd--命令短集

    查看ip地址:ipconfig 查看ip地址:ipconfig/all 进入c盘program files目录下:cd %Program Files%,”x:“, 进入x盘根目录.cd “ ”进入某文 ...

  2. css 给inline和inline-block元素设置margin和padding

    经过简单的测试,行内元素或者行内块元素的maring-left,margin-right,padding-left,padding-right都是可以正常表现的,下面来看一下剩下的margin-top ...

  3. apt-get update 系列作用

    sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统 下面摘自知乎用户回答: apt- ...

  4. ngnix https

    server {            listen       80;#端口号        server_name  www.xxxx.net;#本机                charset ...

  5. Android热修复之 - 收集崩溃信息上传服务器

    1.概述 大致的流程就是在用户崩溃的时候,我们获取崩溃信息.应用当前的信息和手机信息,然后把它保存到手机内存卡,再找我就直接找出来看看.后来衍生到上线后某些奇葩机型会有部分问题,所以不得不上传到服务器 ...

  6. C# 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)

    public partial class FileGet { /// <summary> /// 私有变量 /// </summary> private static List ...

  7. MATLAB中批量导入.mat文件(每个文件多变量)

    一.新建MATLAB script(.m文件):readall_mat.m 二.代码如下: function data = readall_mat(path) % READALL_MAT 读取所有文件 ...

  8. nopcommerce

    nopcommerce是国外的一个高质量的开源b2c网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的,基 ...

  9. SQL语句结合上下文查询(in查询)

    在多个表联合查询时,使用linq语句查询就显得不那么方便了,执行效率也不高, SQL语句查询的优势就显现出来了. using (var context = new YZS_TRAEntities()) ...

  10. Excel表设置加密

    如果你是从事会计或者人事等数据敏感岗位时,有时手上的电子表格不想被其他人浏览或者增删时,可以给表设置一个密码,这样就安全了. 具体操作如下:(以2007版本为例) 01.把需要加密的文件另存为 02. ...