大家除了QQ人人网和微博的区别游戏微博还有什么在玩啊...

信息加载中...
博客特效,blog特效介绍,网页特效,网页代码,博客特效代码
好消息!现在起,在博客首页你可以用QQ账号、新浪微博账号、人人网账号登陆育儿网啦!登陆育儿网,轻松2秒就搞定,快来试试吧!
以QQ为例,具体说一下:
绑定QQ账号步骤说明:
1、第一步:进入博客首页,未登录状态下可以看到登陆框(如果已登录先退出)
2、第二步:点击QQ图标,你会看到以下页面
3、第三步:选择你要绑定的QQ账号,点击&快速登录&,你会看到以下页面
4、点击以上页面右下角的&允许&,你会看到以下页面
5、如果你是新用户首次登陆,请填写左侧红色方框内选项并选择&直接登陆&;如果你是育儿网老用户,请填写右侧蓝色方框内选项并选择&绑定账号&。
6、页面跳转至&博客首页&,并且显示已登录状态,则说明已绑定成功,可以用QQ账号登陆育儿博客了哦!
注意:大家在绑定QQ号时,是老用户的请不要再创建新的账号与QQ绑定,如不小心绑定错误,想解除绑定并重新绑定老账号的,可以发站内信至说明情况。
使用新浪微博账号、人人账号登陆大体同上。
亲爱的们,都来试试这个新功能吧!登陆育儿博客一步到位,别提多省事儿哦!
&&&&发布于日 17:46 |
阅读数(15838)
此文已被博客管理员""推荐到博客首页今日热文,奖励30分
上一篇:下一篇:
发表评论 &
显示全部&&
显示全部&&
文章数量:843
评论数量:45505
访问数量:不上QQ,不玩空间、人人、微博、微信的85后男青年,他平时能干嘛啊?
有这么一枚85后男性青年,LZ对他很好奇来着。他很宅,不玩QQ,空间,人人,微博,微信等等一系列的社交工具,不是工作狂,工作双休,平时也不用加班,在家休息几乎不出门不逛街,也不爱睡懒觉,你说他在家休息能干嘛啊??但是跟他相处,又觉得他挺开朗挺健谈的一个人,他说他向往世外桃源的生活,LZ对他真的很好奇,但他太神秘了,在网上搜索不到任何关于他的蛛丝马迹。关于联系方式,LZ只有他万年不上线的QQ(还是我主动加他的,里面除了个人基本资料啥都没有啥都没开通),还有手机号码,他只会发短信,不打电话,LZ真的不知道怎么接近他了,求助!!!!!
DOTA,LOL 各种二次元。。这种不是挺好的么很不喜欢玩QQ空间的男人
我会告诉你我以前也认识这么一个男人么~~
游戏 电影 动漫什么的不是挺正常吗 你说的那些女生比较爱玩吧
难道在空间转那些非主流才是好的吗。。。
@埋头甩肉的潘达 1楼
10:21:10DOTA,LOL 各种二次元。。这种不是挺好的么很不喜欢玩QQ空间的男人-----------------------------他应该不是二次元的,工作后他游戏也不怎么玩了。。。
十有八九英雄联盟!!!!身边就有个这样的
做家务,看电视,听歌,画画
@A头痛ing 2楼
10:23:05我会告诉你我以前也认识这么一个男人么~~-----------------------------那你认识的那个他平时在干嘛??
楼主有个误区,不用网络社交工具不代表和人不交流。有人就喜欢泡各种论坛。不也是和别人在交流吗?
。。。奇葩
你说的那些我也从来没用过。
我也喜欢世外桃源般的生活,这样的好男人打着灯笼也难找啦,可惜俺已婚,哈哈哈
@小菜鸟1230 6楼
10:27:21做家务,看电视,听歌,画画-----------------------------他说自己很懒的,不做家务,他说他没什么特长和爱好,所以我也不知道他平时在干嘛
10:23:05我会告诉你我以前也认识这么一个男人么~~-----------------------------@胖胖兔的幸福生活 7楼
10:27:34那你认识的那个他平时在干嘛??-----------------------------DOTA,PSP.看电影,听音乐
@zhongzaoyang 11楼
10:29:49我也喜欢世外桃源般的生活,这样的好男人打着灯笼也难找啦,可惜俺已婚,哈哈哈-----------------------------这个是好男人吗?他说他没什么大的志向,LZ也是没志向的,只图安稳过日子的人,所以感觉生活观很像,很想接近他啊,了解他啊,但是真不知道怎么接近他了。
可以看书啊。。。你直接问他平时在干嘛不就行了
我还以为说我呢!QQ万年隐身可见,就是看看小说玩玩游戏
@埋头甩肉的潘达 15楼
10:33:08可以看书啊。。。你直接问他平时在干嘛不就行了-----------------------------问了,他就说宅着,我问他是不是打游戏,看动漫之类的,他说上班后就没怎么玩了。他有一天还发我短信说,日子一天天这样过着,没期盼没向往,真累。
这不是我老公吗,他上QQ就是为了斗地主,平时在家看看体育新闻,偶尔和同事出去打台球,玩麻将,喝酒聚餐,没什么事也会和我一起逛超市,上街,我觉得挺好,不接触那些微信微博的,省的我闹心
是不是有抑郁症啊,,,,
10:34:15我还以为说我呢!QQ万年隐身可见,就是看看小说玩玩游戏-----------------------------他QQ是不上的,新版的QQ不是有7天内登陆过的标示嘛,所以就算对方隐身也能知道他最近登陆过,但是他没有,确实是不上,不是隐身。你是男的吗??很想了解你们这类人的想法。
大家还在看大家除了QQ人人游戏微博还有什么在玩啊 越多越好 越流行越好_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
大家除了QQ人人游戏微博还有什么在玩啊 越多越好 越流行越好
我有更好的答案
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
人人游戏的相关知识
换一换
回答问题,赢新手礼包& 接入新浪、腾讯微博和人人网的Android客户端实例
接入新浪、腾讯微博和人人网的Android客户端实例
&&&&&& 做了个Android项目,需要接入新浪微博,实现时也顺带着研究了下腾讯微博和人人网的Android客户端接入,本文就跟大家分享下三者的Android客户端接入方法。&&&&&& 一、实例概述&&&&&& 说白了,接入微博就是让你的应用程序可以调用新浪微博,腾讯微博和人人网的api,实现微博发送,分享给好友等等的功能啦。当然也可以实现让你的客户端使用微博账号进行登录。我们这篇文章要讲的就是访问这些社交平台提供的api的时候比较关键的一步,获取调用api接口的token,token可以理解为我们的客户端程序与社交平台api交互的令牌。&&&&&&&二、官方教程&&&& & 学习东西,当然是官方的东西最好了。下面我们就简单说说接入新浪,腾讯微博以及人人网的官方教程吧。同学们也可以自行去看官方的教程,那么我下面写的东西就可以忽略不计了。&&&&&& 新浪微博 api:&&&&&& 首先,当然你得有一个新浪微博的账号啦。然后就是注册应用啊等等一代堆东西,自己去 开发指南--新手引导 中看吧。然后,就要填写我们的信息了。这里要注意授权页的填写,在 我的应用--应用信息--高级信息--授权回调页 这里,如下图1。最后,就是如何对我们的客户端程序进行授权了。新浪微博的授权机制说明如下:大部分API的访问如发表微博、获取私信,关注都需要用户身份。目前新浪微博开放平台用户身份鉴权有OAuth2.0和Basic Auth(仅用于应用所属开发者调试接口)两种方式。我们这里采用的是OAuth2.0的授权机制。&&&&&& 如何获取token,我们将在下面的文章中结合代码进行讲解。&&&&图1 设置授权回调页&&&&&&&腾讯微博&&api:&&&&&&&腾讯微博的应用申请和新浪微博的类似,它也有一个授权回调页。不过它不是这个名字,它的名字是:应用网址。为简单起见,我们这里也使用默认的地址,即:&其他的和腾讯微博差不多,就不赘述了。腾讯微博提供了OAuth 1.0a,OAuth2.0和OpenId&OpenKey授权方式,本人中采用的是OAuth2.0授权方式,其他的方式同学们自行研究。&&&&&& 人人网&&api:&&& 人人网使用OAuth 2.0作为验证与授权协议。&&&& & 人人网目前有一个移动开发者平台,专门为移动应用和HTML5应用提供更简洁的授权接口,简单易用,称为人人移动开发者中心。地址如下:&&&&&& &&&&&三、关于OAuth2.0&&&&&&&本人比较懒,就不把概念贴在这里了。自己百度去吧,百度百科中有这样的一句概括:OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。这里我们稍微说一下OAuth2.0的认证流程。&&&&&& 在OAuth2.0的处理流程,主要分为以下四个步骤:&&&&&& 1、得到授权码code&&&&&& 2、获取access token&&&&&& 3、通过access token,获取OpenID&&&&&& 4、通过access token及OpenID调用API,获取用户授权信息&&&&&& 上面是流程的大概四个步骤,在下面的流程示意图中会得到体现,这是我制作的一个幻灯片的流程图(文章最后会附上制作的OAuth幻灯片分享给大家),这里就直接截图下来进行讲解:图2 OAuth2.0 认证流程&&&&&& 第一步:首先直接跳转至用户授权地址,即图示 Request User Url ,提示用户进行登录,并给予相关资源授权,得到唯一的Auth code,这里注意的是code只有10分钟的有效期,对于安全考虑,相对于OAuth1.0省了一步获取临时的Token,并且有效期也进行了控制,比1.0认证简化了很多,并安全一些;&&&&&& 第二步:得到授权code后,这一步就是请求access token,通过 图示 Request access url ,生成得到数据Token;&&&&&& 第三步:通过Access Token请求OpenID,openid是用户在此平台的唯一标识,通过 图示 Request info url 请求,然后得到OpenID;&&&&&& 第四步:通过第二步得到的数据Token、第三步得到的OpenID及相关API,进行请求,获取用户授权资源信息。(我喜欢简洁明了,OAuth2.0认证流程就是这样,相信通过图示及讲解都能明白,若有不明白之处请留言)&&&&&& 四、让你的应用程序访问社交平台api(获取token)&&&&&& 注意要加相应的权限,文章后面会贴出清单文件中所需的权限。&&&&&&&新浪微博授权:&&&&&& 详细内容请参见新浪微博SDK中自带的文档:Android平台微博SDK说明文档.docx。它在SDK的工程目录下,所以你要导入SDK工程的时候主要把它去了。由于新浪微博给我们提供的SDK是以工程的方式给出的,所以我们需要引用它的工程才可以使用它提供的api。当然啦,这样放到实际环境中是不行的。所以我们可以将SDK下的相关文件拷贝到我们的自己的工程目录下即可,注意修改相应的东西。本人是这样做的,不知道还有没有更好的方式。具体的请看文章后面给出的demo。值得一提的是,人人网也是以这种方式提供SDK的,但是腾讯微博给我们提供的是JAR,这个看起来就简洁多了。这里顺便说一下覆盖的方法吧,就是将新浪微博给我们提供的SDK工程文件下的src和res文件夹拷贝到你自己的工程中覆盖原有的文件即可。&&&&&&&环境准备好了,我们就可以开始进行代码的编写了。还是那句话,有官方教程在呢,同学们可以对着教程来练习,我下面只是结合代码简单的说一下。
&&&&private&static&final&String&CONSUMER_KEY&=&&&; &&
&&&&private&static&final&String&CONSUMER_SECRET&=&&32c47f37edb1ceee12bf765&; &&
&&&&private&String&redirectUriSina=&&;&//授权回调页&&&&与&我的应用--应用信息--高级信息&中一致 &&
&&&&OAuthV2&authV2&=&null;&&
&&&&Renren&renren&=&null;&&
&&&&File&file&=&null; &&
&&&&String&basepath&=&&&; &&
&&&&private&static&final&String&CLINETID&=&&&; &&
&&&&private&static&final&String&CLIENTSECRET&=&&da6d09bbcb3&; &&
&&&&private&String&redirectUriTen=&/zh-cn/index.shtml&;& &&
&&&&private&static&final&String&API_KEY&=&&b6f3b794d34b51639a99&; &&
&&&&private&static&final&String&SECRET_KEY&=&&f51ceab6bd&; &&
&&&&private&static&final&String&APP_ID&=&&206681&;&&
&&&&private&static&final&int&RENREN_REQUEST_CODE&=&123; &&
&&&&String&accessT&&
&&&&&&&&&&&&Weibo&weibo&=&Weibo.getInstance(); &&
&&&&&&&&&&&&if(!isOauthSina(weibo)){ &&
&&&&&&&&&&&&&&&&weibo.setupConsumerConfig(CONSUMER_KEY,&CONSUMER_SECRET);&&
&&&&&&&&&&&&&&&&weibo.setRedirectUrl(redirectUriSina); &&
&&&&&&&&&&&&&&&&weibo.authorize(this,&new&OauthDialogListener()); &&
&&&&&&&&&&&&}else{ &&
&&&&&&&&&&&&&&&&tv.setText(&access_token&:&&&+&accessToken); &&
&&&&&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&该用户已经授权&,&Toast.LENGTH_SHORT).show(); &&
&&&&&&&&&&&&&&&&Intent&intent&=&new&Intent(); &&
&&&&&&&&&&&&&&&&intent.putExtra(&accessToken&,&accessToken); &&
&&&&&&&&&&&&&&&&intent.putExtra(&flag&,&MyContent.SINA); &&
&&&&&&&&&&&&&&&&intent.setClass(InsertWeiboActivity.this,&TestActivity.class); &&
&&&&&&&&&&&&&&&&startActivity(intent); &&
&&&&&&&&&&&&}&&&&&&&& isOauthSina方法如下,它的作用是判断用户是否已经对我们的应用进行了授权。
&&&&private&boolean&isOauthSina(Weibo&weibo){ &&
&&&&&&&&boolean&b&=&false; &&
&&&&&&&&accessToken&=&getSharedPreferences(&token&,&Context.MODE_PRIVATE).getString(&access_token&,&&&); &&
&&&&&&&&if(weibo&!=&null&&&&!accessToken.equals(&&)){ &&
&&&&&&&&&&&&b&=&true; &&
&&&&&&&&} &&
&&&&&&&&return&b; &&
&&&&}&&&&&&&& 上面的两段代码中, 值得注意的地方是redirectUriSina,它是一个String类型的参数,值就是我们在之前提到过得那个授权回调页的地址。接着新浪微博将弹出一个授权页面的对话框,供用户输入用户名和密码(此处就不截图了)。在用户输入用户名和密码之后,它将被我们的OauthDialogListener类监听到,它的实现如下:
&&&&private&class&OauthDialogListener&implements&WeiboDialogListener{ &&
&&&&&&&&@Override&&
&&&&&&&&public&void&onComplete(Bundle&values)&{ &&
&&&&&&&&&&&&String&token&=&values.getString(&access_token&); &&
&&&&&&&&&&&&String&expires_in&=&values.getString(&expires_in&); &&
&&&&&&&&&&&&tv.setText(&access_token&:&&&+&token&+&&&&expires_in:&&&&
&&&&&&&&&&&&&&&&&&&&+&expires_in); &&
&&&&&&&&&&&&AccessToken&accessToken&=&new&AccessToken(token,&CONSUMER_SECRET); &&
&&&&&&&&&&&&SharedPreferences&sf&=&getSharedPreferences(&token&,&Context.MODE_PRIVATE); &&
&&&&&&&&&&&&sf.edit().putString(&access_token&,&accessToken&!=&null&?&accessToken.getToken()&:&&&) &&
&&&&&&&&&&&&.commit(); &&
&&&&&&&&&&&&Intent&intent&=&new&Intent(); &&
&&&&&&&&&&&&intent.putExtra(&accessToken&,accessToken.getToken()); &&
&&&&&&&&&&&&intent.putExtra(&flag&,&MyContent.SINA); &&
&&&&&&&&&&&&intent.setClass(InsertWeiboActivity.this,&TestActivity.class); &&
&&&&&&&&&&&&startActivity(intent); &&
&&&&&&&&} &&
&&&&&&&&@Override&&
&&&&&&&&public&void&onWeiboException(WeiboException&e)&{ &&
&&&&&&&&&&&&&&
&&&&&&&&} &&
&&&&&&&&@Override&&
&&&&&&&&public&void&onError(DialogError&e)&{ &&
&&&&&&&&&&&&&&
&&&&&&&&} &&
&&&&&&&&@Override&&
&&&&&&&&public&void&onCancel()&{ &&
&&&&&&&&&&&&Toast.makeText(InsertWeiboActivity.this,&&您已经取消授权&,&1).show(); &&
&&&&&&&&} &&
&&&&}&&&&&&&& WeiboDialogListener中有一个回调方法,它会在用户输入正确的用户名和密码之后返回给我们的客户端程序获取新浪微博提供的api的令牌(这个东西很重要的,你调用新浪微博api的时候每次都必须把它带上)。接下来的工作就是保存此token供下次使用了。这里我们存储在中。至此,我们就获取了新浪微博的token,接下来就可以操作新浪微博api了,比如发布一条微博,可以试试哦。&&&&&&& 腾讯微博授权:&&&&&&& 腾讯微博授权的官方实例请看这里,。下面我们结合代码说说我们的实现。& 首先第一步就是得到腾讯给我们提供的授权回调页,代码如下,由于要弹出OAuthV2AuthorizeWebView这个页面,所以要在清单文件中声明。
if(!isOauchTen()){ &&
&&&&&&&authV2&=&new&OAuthV2(redirectUriTen); &&
&&&&&&&authV2.setClientId(CLINETID); &&
&&&&&&&authV2.setClientSecret(CLIENTSECRET); &&
&&&&&&&OAuthV2Client.getQHttpClient().shutdownConnection(); &&
&&&&&&&Intent&intent&=&new&Intent(InsertWeiboActivity.this,&OAuthV2AuthorizeWebView.class);&&
&&&&&&&intent.putExtra(&oauth&,&authV2); &&
&&&&&&&startActivityForResult(intent,2);& &&
&&&&&&&Toast.makeText(getApplicationContext(),&&该用户已经授权&,&Toast.LENGTH_SHORT).show(); &&
&&&&&&&Intent&intent&=&new&Intent(); &&
&&&&&&&intent.putExtra(&oauth&,&authV2); &&
&&&&&&&intent.putExtra(&flag&,&MyContent.TENCENT); &&
&&&&&&&intent.setClass(InsertWeiboActivity.this,&TestActivity.class); &&
&&&&&&&startActivity(intent); &&
}&&&&&&&& 这里我们看到了startActivityForResult,它会在用户输入完用户名和密码后执行OnActivityResult方法(包括了人人的实现),isOauthTen()方法的作用是判断用户是否已经授权过该应用。它们的代码如下:&&&&&& OnActivityResult()方法:
&&&@Override&&
&&&protected&void&onActivityResult(int&requestCode,&int&resultCode,&Intent&data)&{ &&
&&&&if&(requestCode==2)&{ &&
&&&&&&&&&&
&&&&&&&&&&&if&(resultCode==OAuthV2AuthorizeWebView.RESULT_CODE)&&&&{ &&
&&&&&&&&&&&&&&&OAuthV2&oAuth=(OAuthV2)&data.getExtras().getSerializable(&oauth&); &&
&&&&&&&&&&&&&&&if(oAuth&!=&null&&&&oAuth.getStatus()==0){ &&
&&&&&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&登陆成功&,&Toast.LENGTH_SHORT).show(); &&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&Intent&intent&=&new&Intent(); &&
&&&&&&&&&&&&&&&&intent.putExtra(&accessToken&,&oAuth.getAccessToken()); &&
&&&&&&&&&&&&&&&&intent.putExtra(&oauth&,&oAuth); &&
&&&&&&&&&&&&&&&&intent.putExtra(&flag&,&MyContent.TENCENT); &&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&FileOutputStream&fos&=&null; &&
&&&&&&&&&&&&&&&&ObjectOutputStream&oos&=&null; &&
&&&&&&&&&&&&&&&&try&{ &&
&&&&&&&&&&&&&&&&&&&&fos&=&new&FileOutputStream(file); &&
&&&&&&&&&&&&&&&&&&&&oos&=&new&ObjectOutputStream(fos); &&
&&&&&&&&&&&&&&&&&&&&oos.writeObject(oAuth); &&
&&&&&&&&&&&&&&&&}&catch&(FileNotFoundException&e)&{ &&
&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&&&&&&&&&}&catch&(IOException&e)&{ &&
&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&&&&&&&&&}&finally{ &&
&&&&&&&&&&&&&&&&&&&&if(oos&!=&null){ &&
&&&&&&&&&&&&&&&&&&&&&&&&try&{ &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&oos.close(); &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&oos&=&null; &&
&&&&&&&&&&&&&&&&&&&&&&&&}&catch&(IOException&e)&{ &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&&&&&if(fos&!=&null){ &&
&&&&&&&&&&&&&&&&&&&&&&&&try&{ &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&fos.close(); &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&fos&=&null; &&
&&&&&&&&&&&&&&&&&&&&&&&&}&catch&(IOException&e)&{ &&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&intent.setClass(InsertWeiboActivity.this,&TestActivity.class); &&
&&&&&&&&&&&&&&&&startActivity(intent);&& &&
&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&else&&
&&&&&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&登陆失败&,&Toast.LENGTH_SHORT).show(); &&
&&&&&&&&&&&}else{ &&
&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&授权失败&,&Toast.LENGTH_SHORT).show(); &&
&&&&&&&&&&&} &&
&&&&&&&}else&if(requestCode&==&RENREN_REQUEST_CODE){ &&
&&&&&&&&&&
&&&&&&&&if&(renren&!=&null)&{ &&
&&&&&&&&&&&&renren.authorizeCallback(requestCode,&resultCode,&data); &&
&&&&&&&&}else{ &&
&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&授权失败&,&Toast.LENGTH_SHORT).show(); &&
&&&&&&&&} &&
&&&&&&&} &&
&&&}&&&&&&&& isOauchTen()方法:
&&&&private&boolean&isOauchTen()&{ &&
&&&&&&&&boolean&b&=&false; &&
&&&&&&&&FileInputStream&fis&=&null; &&
&&&&&&&&ObjectInputStream&ois&=&null; &&
&&&&&&&&try&{ &&
&&&&&&&&&&&&openFileOutput(&aaa&,&Context.MODE_PRIVATE); &&
&&&&&&&&&&&&persistTenOauth(); &&
&&&&&&&&&&&&fis&=&new&FileInputStream(file); &&
&&&&&&&&&&&&ois&=&new&ObjectInputStream(fis);&&
&&&&&&&&&&&&authV2&=&(OAuthV2)&ois.readObject(); &&
&&&&&&&&&&&&if(authV2&!=&null){ &&
&&&&&&&&&&&&&&&&b&=&true; &&
&&&&&&&&&&&&} &&
&&&&&&&&}&catch&(Exception&e)&{ &&
&&&&&&&&&&&&b&=&false; &&
&&&&&&&&}&finally{ &&
&&&&&&&&&&&&if(ois&!=&null){ &&
&&&&&&&&&&&&&&&&try&{ &&
&&&&&&&&&&&&&&&&&&&&ois.close(); &&
&&&&&&&&&&&&&&&&&&&&ois&=&null; &&
&&&&&&&&&&&&&&&&}&catch&(Exception&e2)&{ &&
&&&&&&&&&&&&&&&&&&&&e2.printStackTrace(); &&
&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&} &&
&&&&&&&&&&&&if(fis&!=&null){ &&
&&&&&&&&&&&&&&&&try&{ &&
&&&&&&&&&&&&&&&&&&&&fis.close(); &&
&&&&&&&&&&&&&&&&&&&&fis&=&null; &&
&&&&&&&&&&&&&&&&}&catch&(Exception&e2)&{ &&
&&&&&&&&&&&&&&&&&&&&e2.printStackTrace(); &&
&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&& &&
&&&&&&&&} &&
&&&&&&&&return&b; &&
&&&&}&&&&&&& persistTenOauth()方法的作用是将我们获取到的token存储起来,由于调用腾讯微博api需要Token对象,没有办法所以我们只有将Token对象存起来,这里使用对象流的方式,具体实现如下:
&&&&private&void&persistTenOauth(){ &&
&&&&&&&&&&
&&&&&&&&String&s&=&getFileStreamPath(&aaa&).getAbsolutePath(); &&
&&&&&&&&for(String&ss&:&fileList()){ &&
&&&&&&&&&&&&System.out.println(&ss==&&+&ss); &&
&&&&&&&&} &&
&&&&&&&&String&x&=&&&; &&
&&&&&&&&try{ &&
&&&&&&&&&&&&x&=&s.substring(0,s.lastIndexOf(&/&)); &&
&&&&&&&&}catch(Exception&e){ &&
&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&&&&&x&=&&/data/data/yanbin.insertweibo&; &&
&&&&&&&&} &&
&&&&&&&&&&
&&&&&&&&try&{ &&
&&&&&&&&&&&&file&=&new&File(x&+&&/oauth_ten.data&); &&
&&&&&&&&&&&&if(!file.exists()){ &&
&&&&&&&&&&&&&&&&new&File(x).mkdirs(); &&
&&&&&&&&&&&&&&&&file.createNewFile(); &&
&&&&&&&&&&&&} &&
&&&&&&&&}&catch&(Exception&e)&{ &&
&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&} &&
&&&&&&&& &&
&&&&}&&&&&&&&&至此,我们已经成功的获取到了访问腾讯微博必须的令牌,接下来我们就可以使用这个令牌操纵api了。&&&&&&& 人人网授权:&&&&&& 人人网并没有实现发心情的功能,只是简单的获取了它的token。&&&&&& 实现的代码如下:
if(!isOauthRenren()){ &&
&&&&&&&&renren&=&new&Renren(API_KEY,&SECRET_KEY,&APP_ID,&this); &&
&&&&&&&&renren.authorize(this,&null,&new&MyRenrenListener(),&RENREN_REQUEST_CODE); &&
&&&&&&&&Toast.makeText(getApplicationContext(),&&该用户已经授权&,&Toast.LENGTH_SHORT).show(); &&
}&&&&&& isOauthRenren用来判断用户是否对本客户端进行了授权。MyRenrenListener类会在用户在输入框中输入用户名和密码后回调。它们的具体实现如下:&&&&&& isOauthRenren()方法:
&&&&private&boolean&isOauthRenren(){ &&
&&&&&&&&boolean&b&=&false; &&
&&&&&&&&String&token&=&getSharedPreferences(&oauth_renren&,&Context.MODE_PRIVATE).getString(&access_token&,&&&); &&
&&&&&&&&if(!&&.equals(token)){ &&
&&&&&&&&&&&&b&=&true; &&
&&&&&&&&} &&
&&&&&&&&return&b; &&
&&&&}&&&&&&&& MyRenrenListener类的实现:
&&&&private&class&MyRenrenListener&implements&RenrenAuthListener{ &&
&&&&&&&&@Override&&
&&&&&&&&public&void&onComplete(Bundle&values)&{ &&
&&&&&&&&&&&&&&
&&&&&&&&&&&&Bundle&bundle&=& &&
&&&&&&&&&&&&String&access_token&=&bundle.getString(&access_token&); &&
&&&&&&&&&&&&int&expires_in&=&bundle.getInt(&expires_in&); &&
&&&&&&&&&&&&String&refresh_token&=&bundle.getString(&refresh_token&); &&
&&&&&&&&&&&&String&scope&=&bundle.getString(&scope&); &&
&&&&&&&&&&&&System.out.println(&验证服务器端返回的数据--&&&+&&access_token--&&&+&access_token &&
&&&&&&&&&&&&&&&&&&&&+&&,expires_in--&&&+&expires_in &&
&&&&&&&&&&&&&&&&&&&&+&&,refresh_token--&&&+&refresh_token &&
&&&&&&&&&&&&&&&&&&&&+&&,scope--&&&+&scope); &&
&&&&&&&&&&&&SharedPreferences&sp&=&getSharedPreferences(&oauth_renren&,&Context.MODE_PRIVATE); &&
&&&&&&&&&&&&sp.edit().putString(&access_token&,&access_token).commit(); &&
&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&用户授权成功&,&Toast.LENGTH_SHORT).show(); &&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&
&&&&&&&&} &&
&&&&&&&&@Override&&
&&&&&&&&public&void&onRenrenAuthError(RenrenAuthError&renrenAuthError)&{ &&
&&&&&&&&&&&&Toast.makeText(getApplicationContext(),&&异常&,&Toast.LENGTH_SHORT).show(); &&
&&&&&&&&} &&
&&&&&&&&@Override&&
&&&&&&&&public&void&onCancelLogin()&{ &&
&&&&&&&&&&&&&&
&&&&&&&&} &&
&&&&&&&&@Override&&
&&&&&&&&public&void&onCancelAuth(Bundle&values)&{ &&
&&&&&&&&&&&&&&
&&&&&&&&} &&
&&&&&&&& &&
&&&&}&&&&&&&& 至此,我们也成功的获取到了访问人人网api的token,接下来就是对api的操作了。下面是一些相关的类(TestActivity.java)和AndroidManifest.xml文件。&&&&&& TestActivity.java:
package&yanbin.insertW &&
import&java.net.InetA &&
import&java.net.NetworkI &&
import&java.net.SocketE &&
import&java.util.E &&
import&com.tencent.weibo.api.TAPI; &&
import&com.tencent.weibo.constants.OAuthC &&
import&com.tencent.weibo.oauthv2.OAuthV2; &&
import&com.weibo.net.U &&
import&com.weibo.net.W &&
import&com.weibo.net.WeiboE &&
import&com.weibo.net.WeiboP &&
import&android.app.A &&
import&android.os.B &&
import&android.view.V &&
import&android.widget.B &&
import&android.widget.EditT &&
import&android.widget.T &&
public&class&TestActivity&extends&Activity&{ &&
&&&&Button&btnSend&; &&
&&&&EditText& &&
&&&&String&accessT &&
&&&&OAuthV2&oAuthV2,oAuthV2_2; &&
&&&&int&flag&;&&
&&&&@Override&&
&&&&protected&void&onCreate(Bundle&savedInstanceState)&{ &&
&&&&&&&&super.onCreate(savedInstanceState); &&
&&&&&&&&setContentView(R.layout.send_weibo); &&
&&&&&&&&accessToken&=&getIntent().getStringExtra(&accessToken&); &&
&&&&&&&&flag&=&getIntent().getIntExtra(&flag&,&-1); &&
&&&&&&&&oAuthV2&=&&(OAuthV2)&getIntent().getSerializableExtra(&oauth&); &&
&&&&&&&&btnSend&=&(Button)&findViewById(R.id.btnSend); &&
&&&&&&&&et&=&(EditText)&findViewById(R.id.et); &&
&&&&public&void&click(View&view){ &&
&&&&&&&&int&id&=&view.getId(); &&
&&&&&&&&switch&(id)&{ &&
&&&&&&&&case&R.id.btnSend: &&
&&&&&&&&&&&&switch&(flag)&{ &&
&&&&&&&&&&&&case&MyContent.SINA: &&
&&&&&&&&&&&&&&&&Weibo&weibo&=&Weibo.getInstance(); &&
&&&&&&&&&&&&&&&&WeiboParameters&parameters&=&new&WeiboParameters(); &&
&&&&&&&&&&&&&&&&parameters.add(&access_token&,&accessToken); &&
&&&&&&&&&&&&&&&&parameters.add(&status&,&et.getText().toString()); &&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&try&{ &&
&&&&&&&&&&&&&&&&&&&&String&flag&=&weibo.request(this,&Weibo.SERVER&+&&statuses/update.json&,&parameters,&Utility.HTTPMETHOD_POST,&weibo.getAccessToken()); &&
&&&&&&&&&&&&&&&&&&&&System.out.println(&flag==&&+&flag); &&
&&&&&&&&&&&&&&&&&&&&Toast.makeText(this,&&发送微博成功&,&1).show(); &&
&&&&&&&&&&&&&&&&}&catch&(WeiboException&e)&{ &&
&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&&&&&&&&&&&&&Toast.makeText(this,&&发送微博失败&,&1).show(); &&
&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&finish(); &&
&&&&&&&&&&&&&&&&break; &&
&&&&&&&&&&&&case&MyContent.TENCENT: &&
&&&&&&&&&&&&&&&&TAPI&tapi&=&new&TAPI(OAuthConstants.OAUTH_VERSION_2_A); &&
&&&&&&&&&&&&&&&&&try&{ &&
&&&&&&&&&&&&&&&&&&&&&String&response=tapi.add(oAuthV2,&&json&,&et.getText().toString(),&getHostIp()); &&
&&&&&&&&&&&&&&&&&&&&&System.out.println(&response==&&+&response); &&
&&&&&&&&&&&&&&&&&&&&&tapi.shutdownConnection(); &&
&&&&&&&&&&&&&&&&&&&&&System.out.println(&发送微博成功&); &&
&&&&&&&&&&&&&&&&&&&&&Toast.makeText(this,&&发送微博成功&,&1).show(); &&
&&&&&&&&&&&&&&&&&}&catch&(Exception&e)&{ &&
&&&&&&&&&&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&&&&&&&&&&&&&&Toast.makeText(this,&&发送微博失败&,&1).show(); &&
&&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&&finish(); &&
&&&&&&&&&&&&&&&&&break; &&
&&&&&&&&&&&&} &&
&&&&&&&&&&&&break; &&
&&&&&&&&} &&
&&&&public&static&String&getHostIp()&{&& &&
&&&&&&&&try&{ &&
&&&&&&&&&&&&for&(Enumeration&NetworkInterface&&en&=&NetworkInterface &&
&&&&&&&&&&&&&&&&&&&&.getNetworkInterfaces();&en.hasMoreElements();)&{ &&
&&&&&&&&&&&&&&&&NetworkInterface&intf&=&en.nextElement(); &&
&&&&&&&&&&&&&&&&for&(Enumeration&InetAddress&&ipAddr&=&intf.getInetAddresses();&ipAddr &&
&&&&&&&&&&&&&&&&&&&&&&&&.hasMoreElements();)&{ &&
&&&&&&&&&&&&&&&&&&&&InetAddress&inetAddress&=&ipAddr.nextElement(); &&
&&&&&&&&&&&&&&&&&&&&if&(!inetAddress.isLoopbackAddress())&{&&&&&&&&&&&&&&&&&&&&& &&
&&&&&&&&&&&&&&&&&&&&&&&&return&inetAddress.getHostAddress(); &&
&&&&&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&} &&
&&&&&&&&}&catch&(SocketException&ex)&{ &&
&&&&&&&&}&catch&(Exception&e)&{ &&
&&&&&&&&} &&
&&&&&&&&return&null; &&
}&&&&&&&&&AndroidManifest.xml:
&version=&1.0&&encoding=&utf-8&&&
&xmlns:android=&/apk/res/android&&&
&&&&package=&yanbin.insertWeibo&&&
&&&&android:versionCode=&1&&&
&&&&android:versionName=&1.0&&&&
&&&&&android:minSdkVersion=&7&&&&
&&&&&&&&android:icon=&@drawable/ic_launcher&&&
&&&&&&&&android:label=&@string/app_name&&&&
&&&&&&&&&&
&&&&&&&&&&&&android:name=&.InsertWeiboActivity&&&
&&&&&&&&&&&&android:label=&@string/app_name&&&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&android:name=&android.intent.action.MAIN&&&&
&&&&&&&&&&&&&&&&&android:name=&android.intent.category.LAUNCHER&&&&
&&&&&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&android:name=&.TestActivity&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&&&android:name=&com.tencent.weibo.webview.OAuthV2AuthorizeWebView&&&
&&&&&&&&&&&&android:label=&@string/app_name&&&&
&&&&&&&&&&
&&&&&android:name=&android.permission.INTERNET&&&& &&
&&&&&android:name=&android.permission.ACCESS_WIFI_STATE&& &&
&&&&&android:name=&android.permission.WRITE_APN_SETTINGS&&&
&&&&&android:name=&android.permission.CHANGE_WIFI_STATE&&&
&&&&&android:name=&android.permission.ACCESS_NETWORK_STATE&&&
&&&&&android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS&&&
&&&&&android:name=&android.permission.WRITE_EXTERNAL_STORAGE&&&
&&&&&&&&&接入社交平台本就是一个比较简单的功能,想跟大家说详细些,所以文章篇幅有点长,望耐心看完。
本文发布:
本文地址:
发布:鸡啄米
&&( 21:38:45)&&( 23:55:47)&&( 21:53:33)&&( 23:20:10)&&( 21:32:49)
完全随机文章

我要回帖

更多关于 人人网和微博的区别 的文章

 

随机推荐