新浪微博开发之授权用户登录的实现

原创 2012年03月31日 14:36:14

已授权用户再次启动应用时,我们要从数据库中读取已授权用户信息,让用户选择要登录的用户名实现登录。并从数据库中读取token和tokenSecret进行初始化accessToken,为以后获取微博数据做准备!

登录界面:

                                                                            


布局就不上代码了,比较简单,直接上代码:

package com.cloay.weibo.ui;

import java.util.HashMap;

import weibo4android.Weibo;
import weibo4android.http.AccessToken;

import com.cloay.weibo.R;
import com.cloay.weibo.bean.UserInfo;
import com.cloay.weibo.constants.OAuthConstant;
import com.cloay.weibo.db.DataHelper;
import com.cloay.weibo.service.MainService;
import com.cloay.weibo.service.Task;
import com.cloay.weibo.utils.AlertDlgUtil;
import com.cloay.weibo.utils.CheckNetUtil;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

/**
 * 已授权用户登陆界面
 * @author Cloay
 * 2012-2-20
 * 下午08:42:23
 */
public class LoginActivity extends Activity{
	private DataHelper dataHelper;    //保存用户信息的数据库
	private ImageView userIcon;       //用户头像
	private EditText userName;       //用户昵称
	private Button login;            //登录按钮
	private UserInfo userInfo ;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.login);
		MainService.allActivity.add(this);
		
		System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
    	        System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);

		dataHelper = new DataHelper(this);
		userInfo = dataHelper.GetUserList(true).get(0);  //从数据库读取已授权用户信息  这里需   注意1
		System.out.println( "------userInfo: "+ userInfo);
		//生成accessToken
		AccessToken accessToken = new AccessToken(userInfo.getToken(), userInfo.getSecret());
		OAuthConstant.getInstance().setAccessToken(accessToken);
		
		userIcon = (ImageView) findViewById(R.id.user_icon);
		userIcon.setImageBitmap(userInfo.getDrawable());           //设置用户头像
		userName = (EditText) findViewById(R.id.user_Edit);
		userName.setText(userInfo.getName());                    //用户名
		login = (Button) findViewById(R.id.login);
		login.setOnClickListener(new OnClickListener() {//点击登录直接进入主页
			
			@Override
			public void onClick(View v) {
				if(CheckNetUtil.checkNet(LoginActivity.this)){ //先检查网络是否可用
					Intent intent = new Intent(LoginActivity.this, MainActivity.class);   //跳转到微博主页
					startActivity(intent);
					LoginActivity.this.finish();
				}else{
					AlertDlgUtil.alertDialogNetErr(LoginActivity.this);
				}
			}
		});
	}
	

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(Menu.FIRST, 0, 0, R.string.user_instead).setIcon(R.drawable.switchuser);
		menu.add(Menu.FIRST, 1, 1, R.string.exit_app).setIcon(R.drawable.menu_exit);
		return true;
		
	}
	
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		switch(item.getItemId()){
		case 0:   //切换账号,使用新账号登录
			Intent intent = new Intent(LoginActivity.this, OauthActivity.class);
			startActivity(intent);
			break;
		case 1:   //退出程序
			MainService.exitApp(LoginActivity.this);
			break;
		}
		return true;
	}
	
}

注意1:这里我只取出了第一个已授权的user,大家可取出全部让用户选择一个进行登录。

通过上述代码我们就实现了使用已授权用户登录了,通过accessToken使用Weibo类中的方法来请求API进行我们想要的操作!

有问题请留言,大家一起学习交流!

说明:转载请注明出处!

IOS新浪微博开发--分享、授权登录

一、准被工作          1.注册成为开发者,创建应用项目,获取APPkey         2.添加 SDK 文件到工程           将从 GitHub 上下载的 lib...
  • happyrabbit456
  • happyrabbit456
  • 2015年04月14日 10:33
  • 1632

AS 使用新浪微博授权登录

最近在做一个小项目,简版新浪微博,用到了微博授权登录。因为我使用的是Android studio ,遇到了一些问题,和大家分享一下。 先登录新浪微博开发平台,注册一个开发者账号。http://op...
  • lijia1201900857
  • lijia1201900857
  • 2016年01月10日 16:59
  • 755

php实现新浪微博第三方信任登录

现在的人越来越懒,以前的注册和登录的流程让很多用户讨厌起来,确实谁愿意记这么多用户名和密码呢,好吧上帝的要求我们必须要满足的。所以就有了第三方登陆这个东东,目前主要是 微信、微博、qq、淘宝、支付宝 ...
  • phpwhy
  • phpwhy
  • 2015年10月19日 16:04
  • 1721

ASP.NET实现QQ、微信、新浪微博OAuth2.0授权登录

不管是腾讯还是新浪,查看他们的API,PHP都是有完整的接口,但对C#支持似乎都不是那么完善,都没有,腾讯是完全没有,新浪是提供第三方的,而且后期还不一定升级,NND,用第三方的动辄就一个类库,各种配...
  • YourBer
  • YourBer
  • 2015年09月30日 11:44
  • 3082

基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析

基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析
  • mapboo
  • mapboo
  • 2014年09月11日 10:53
  • 8182

java实现模拟登录新浪微博

最近做新浪微博的数据挖掘,与
  • u010343650
  • u010343650
  • 2014年07月25日 22:37
  • 1912

Android第三方登陆之新浪微博Weibo篇(原生登陆授权)

前言 Android第三方登录可以说是非常的常见,今天主要先说一下新浪微博第三方登陆授权。 SDK版本支持 SDK v3.0已经发布了支持iPhone和Android的版本。 须将你的应用的包名...
  • speverriver
  • speverriver
  • 2016年12月17日 15:08
  • 4135

android新浪微博登录获取用户信息

第一步:准备工作 在新浪微博开发者平台http://open.weibo.com/apps/注册并上传应用各种信息(比较多)获取到appkey,关于签名信息最好使用新浪提供的工具省心些,默认的授权...
  • zrj244265428
  • zrj244265428
  • 2017年04月11日 15:19
  • 965

Android授权登录新浪微博获取用户个人信息

今天我讲的是Android通过新浪微博授权登录获取用户信息,大家都知道,现在很多软件除了本地注册登录之外,还增加了第三方登录功能,最常见的是直接授权QQ等软件来登录应用而无需自行注册,其原理更多的是通...
  • u010214991
  • u010214991
  • 2015年10月15日 10:59
  • 7054

iOS 新浪微博分享授权失败的问题

From: http://snowyshell.blog.163.com/blog/static/2209140342014069331338/?latestBlog 问题:在使用ShareSD...
  • caizhongtao
  • caizhongtao
  • 2014年01月16日 14:09
  • 3152
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:新浪微博开发之授权用户登录的实现
举报原因:
原因补充:

(最多只允许输入30个字)