【www.shanpow.com--在线新华字典】
qqwed篇1:QQ在线登陆WEB,QQ网页版(QQWeb)在线登陆首页
QQ网页版(QQWeb)是腾讯QQ公司推出的在线网页版QQ服务平台,WebQQ目前最新版本为WebQQ3.0,也称为Q+ Web。
QQ在线登陆WEB地址是:http://web.qq.com/
QQ在线登陆WEB,QQ网页版(QQWeb)登录方法如下:
1、通过浏览器地址栏输入http://web.qq.com并打开,点击Dock栏上的QQ图标,将弹出帐号登录框,输入帐号、密码,点击登录即可。
2、请您点击Dock栏上的Q+图标,点击登录,即弹出登录窗口,输入账号、密码后,点击“登录”,即获得Q+web系统登录状态,可以使用除QQ以外的所有应用项目。
怎样退出QQ在线登陆WEB,QQ网页版(QQWeb)登录:
1、只退出QQ:请您点击QQ面板右上角的关闭键,即可退出QQ应用,同时Q+web系统依然保持登录状态。
2、完全退出Q+web系统:请您点击Dock栏上的Q+图标,在弹出的菜单栏里点击“注销”,即可完全退出已登录的账号。
qqwed篇2:QQ无能为力!用WebQQ却能实现的5个功能
QQ无能为力!用WebQQ却能实现的5个功能
qinger0052
发表于 2009-11-19 20:11:44
楼主
俺的名字叫WebQQ,早在今年4月就已经与大家见面了。不过让人郁闷的是,虽然这段时间我不断调整自己,力求让功能更加全面。可网友们似乎却并不买帐,很多朋友依旧把我当成是传统QQ的一个影子。其实我的能耐也大着呢,不信下面就给大家介绍几个俺能做而QQ不能做的小功能吧! 去玩玩:http://web.qq.com/
猛击这里进入
一、 在线好友归类查看 好友分组再平常不过了,不过这分组一多,谁在线谁不在线就不好分了。虽然QQ也提供了一项不在线好友暂时隐藏功能(可以在右键菜单中找到),可操作起来并不顺手。而在Web QQ中,我们却可以通过好友列表顶端的“在线好友”,轻松解决这个问题。无论网友分属于哪个标签,只要“上线”后都会被自动“集中”到这里。而且与此同时,用户仍可在传统分组中找到他们,查找起来特别方便!
图1 Web QQ的“在线好友”很方便
二、 天气查询更方便 天气预报可是深受网友们喜爱的一项功能,不过您知道吗?与软件版单调的天气显示相比,Web QQ的预报内容更加丰富。除了提供了未来三天的“风力”及“感冒指数”外。我们还能借助“地区”旁边的下拉菜单,快速查阅国内其他省市的实时天气。而且Web QQ还会通过面板右上角,显示当前预报的发布日期,准确与否一看便知。
图2 两版“天气预报”对比
图3 Web QQ支持快速查询其他城市
三、 免费漫游聊天记录 “漫游聊天记录”大家一定都听过,不过这项功能向来都是“有钱人”的游戏,要求使用者必须拥有QQ会员资格,而像咱们这些普通玩家那可是无福享受的。
图4 普通用户无缘记录漫游
不过WebQQ的到来,却给了我们一个意外惊喜。原来为了方便Web版用户查询记录,系统会自动为每位用户提供为期一周的免费聊天记录保存,而这就相当于为每位用户免费开通了聊天记录漫游。只不过漫游的记录也必须出自于WebQQ哟!
图5 Web QQ可免费漫游一周
四、 同城好友排排序 周末邀请几位好友登山,可是让俺好一阵犯难,如何确定人选呢?距离太远不行,彼此不够熟识也不太好。其实如果您使用的是Web QQ,只需点击一下好友列表上的“管理好友”,这时系统将自动打开一组面板,其中“地域”和“最近上线”便是我们今天操作的重点。
图6 好友管理
简单来说,“最近上线”是Web QQ根据服务器记录自动汇总,无论用户通过哪种QQ登录(软件版、Web、手机版),都会自动纳入这个统计。而“地域”一栏则统计了用户当前所在省市(由用户自行设定)。通过点击“地域”与“最近上线”,我们便能快速找出与自己相同城市且关系不错的网友了。此外,WebQQ还能按照“男”、“女”性别排序,非常方便!
图7 同城好友排序
五、 好友批量删除与移动 在软件版QQ中,好友的删除与管理只能依次单个完成,要是想对一组好友同时处理就不方便了。而在Web QQ中,我们只要首先点击“管理好友”,勾选所有待处理的好友图标。接下来借助面板顶端的“删除”或“移动到…”功能,即可完成批量操作,这样的效率足以让传统QQ汗颜。
图8 批量管理好友
六、 误删还有回收站 “好友误删了,怎样找回?”这是论坛上经常看到的内容。由于没有恢复措施,很多网友在误删除好友后,只能依靠网络向其他网友求助,而且恢复的过程也很麻烦。其实如果我们使用的是Web QQ,就不必这么担心了,因为在它的控制下,好友删除后会自动转入“回收站”标签(位于“管理好友”页面下)。当我们发现误删后,只要进入这一标签,勾选好所有要恢复的好友,再来点击“还原”按钮,稍后这些被删除的好友便会马上回到原来位置,又可以与我们亲切交流了!
图9 误删除的好友
写在最后 怎么样,没想到我还有这么多能耐吧?其实由于实现方式不同,类似的地方还有很多。比如能够同屏显示多组网页、快速设置好友备注等。总之只要您细心观察,一定能够发现更多优点。到时候可别忘了再来和我们分享呀!
qqwed篇3:web实现QQ第三方登录
应用场景
web应用通过QQ登录授权实现第三方登录。
操作步骤
1 注册成为QQ互联平台开发者,http://connect.qq.com/
2 准备一个可访问的域名,如dev.foo.com
3 创建网页应用,配置必要信息,其中包括域名以及回调地址;
其中域名需要验证,需确保对域名主机有足够的控制权限
4 获取应用appID、appKey进行开发
登录流程
开发平台的登录授权采取oauth2.0机制,这也是目前几乎所有互联网开放平台所采取的方式。
需更多了解oauth2.0可参考阮老师的文章: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
实现方式
client-side
流程:
前端页面通过Implict方式 登录授权 -> 回调获得accessToken -> 获取openid -> 同步用户信息并登录
为了保证数据安全,在获取用户信息并登录这一步必须由服务端实现。
这种方式的开发相对便捷,也是后面的实战案例将要采取的方式。
server-side
流程:
由server端页面跳转到登录授权页面(Authorization code方式) -> 回调获得code -> 置换accessToken -> 获取openid -> 同步用户信息并登录
可参考:http://wiki.connect.qq.com/%E5%BC%80%E5%8F%91%E6%94%BB%E7%95%A5_server-side
SDK使用
JSSDK 可快捷实现前端登录授权的功能,可自定制登录按钮
使用文档:http://wiki.connect.qq.com/js_sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
缺点:存在浏览器兼容风险,此外登录按钮UI的定制也存在受限
JavaSDK 屏蔽了oauth授权的复杂度,方便后端实现授权及api操作
缺点:增加依赖jar包,项目容易变得臃肿,尤其是当前项目已经存在oauth功能实现时可不必采用。
案例实战
功能描述
clientside + server-side 通过QQ网页授权登录,并获取用户信息
1 本地开发环境准备
修改hosts文件将dev.foo.com映射到127.0.0.1;
本地服务器以80端口启动, windows下可能会出现80端口被系统进程占用的情况,解决方法可参考 http://www.cnblogs.com/littleatp/p/4414578.html
本地服务器启动后,以dev.foo.com的域名进行访问,在QQ登录授权时可通过域名验证这一步
2 登录跳转页面
<html>
<head>
<title>QQ登录跳转</title>
<script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
//切割字符串转换参数表
function toParamMap(str){
var map = {};
var segs = str.split("&");
for(var i in segs){
var seg = segs[i];
var idx = seg.indexOf("=");
if(idx < 0){
continue;
}
var name = seg.substring(0, idx);
var value = seg.substring(idx+1);
map[name] = value;
}
return map;
}
//隐式获取url响应内容(JSONP)
function openImplict(url){
var script = document.createElement("script");
script.src = url;
document.body.appendChild(script);
}
//获得openid的回调
function callback(obj)
{
var openid = obj.openid;
$("#openid").text(openid);
//跳转服务端登录url
var resulturl = "@{openapi.QQs.login_result()}";
var accessToken = $("#accessToken").text();
//向服务端传输access_token及openid参数
document.location.href=resulturl + "?access_token=" + accessToken + "&openid=" + openid;
}
</script>
</head>
<body>
<p>AccessToken:<span id="accessToken"></span>--ExpireIn<span id="expire"></span></p>
<p>OpenID:<span id="openid"></span></p>
<!-- 执行脚本 -->
<script type="text/javascript">
//应用的APPID
var appID = "101207268";
//登录授权后的回调地址,设置为当前url
var redirectURI = "@@{openapi.QQs.login()}";
//初始构造请求
if (window.location.hash.length == 0)
{
var path = "https://graph.qq.com/oauth2.0/authorize?";
var queryParams = ["client_id=" + appID,
"redirect_uri=" + redirectURI,
"scope=" + "get_user_info,list_album,upload_pic,add_feeds,do_like","response_type=token"];
var query = queryParams.join("&");
var url = path + query;
window.location.href= url;
}
//在成功授权后回调时location.hash将带有access_token信息,开始获取openid
else
{
//获取access token
var accessToken = window.location.hash.substring(1);
var map = toParamMap(accessToken);
//记录accessToken
$("#accessToken").text(map.access_token);
$("#expire").text(map.expires_in);
//使用Access Token来获取用户的OpenID
var path = "https://graph.qq.com/oauth2.0/me?";
var queryParams = ["access_token="+map.access_token, "callback=callback"];
var query = queryParams.join("&");
var url = path + query;
openImplict(url);
}
</script>
</body>
</html>
功能描述
页面在第一次打开时跳转到QQ登录授权页面;
授权成功之后回到当前页面通过url参数(hash串)获得accessToken;
此后可通过jsonp方式获取用户的openid,url如:
https://graph.qq.com/oauth2.0/me?access_token=YOUR_ACCESS_TOKEN
获取到用户OpenID,返回包如下(JSONP方式获取):
callback( {"client_id":"YOUR_APPID","openid":"YOUR_OPENID"} )
将access_token及openid传到服务端进行处理
3 server端获取用户信息
接收openid的页面方法
/**
* 登录结果
*
* @param access_token
* @param openid
*/
public static void login_result(String access_token, String openid) {
//调用api获取qq用户信息
QQUserInfo user = QQApi.getUserInfo(access_token, openid);
//此时若取得user信息,则可以进行保存,并执行用户登录操作
....
//登录成功后跳转
redirect(xxx);
}
QQApi的实现
/**
* QQ互联API
*
* <pre>
* 登录流程:
*
* 1 前端跳转qq授权页面
* 2 js获得access_token
* 3 通过jsonp方式获得openid
* 4 server端根据上传的access_token及openid获取用户信息,如昵称、头像
*
* 参考文档:
* http://wiki.connect.qq.com/%E5%BC%80%E5%8F%91%E6%94%BB%E7%95%A5_client-side#Step2.EF.BC.9A.E8.8E.B7.E5.8F.96AccessToken
* </pre>
*
* @author xxx
* @createDate 2015年3月10日
*
*/
public class QQApi {
public static String appId = "xxx";
public static String appSecret = "xxx";
public static String baseUrl = "https://graph.qq.com";
protected static final String URL_GET_USERINFO = baseUrl
+ "/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s";
protected static final long ACCESS_TIMEOUT = 15;
protected static final String DEF_APP_TOKEN_EXPIRE = "3h";
/**
* 获取用户信息
*
* <pre>
* http://wiki.connect.qq.com/get_user_info
*
*
* 调用地址:
* https://graph.qq.com/user/get_user_info
* 参数
* access_token=*************&
* oauth_consumer_key=12345&
* openid
*
* 返回结果如下:
* {
* "ret": 0,
* "msg": "",
* "is_lost": 0,
* "nickname": "小吞",
* "gender": "女",
* "province": "广东",
* "city": "广州",
* "year": "1993",
* "figureurl": "http://qzapp.qlogo.cn/qzapp/101207268/982C9FEADAF7B242C5069B8F390784BF/30",
* "figureurl_1": "http://qzapp.qlogo.cn/qzapp/101207268/982C9FEADAF7B242C5069B8F390784BF/50",
* "figureurl_2": "http://qzapp.qlogo.cn/qzapp/101207268/982C9FEADAF7B242C5069B8F390784BF/100",
* "figureurl_qq_1": "http://q.qlogo.cn/qqapp/101207268/982C9FEADAF7B242C5069B8F390784BF/40",
* "figureurl_qq_2": "http://q.qlogo.cn/qqapp/101207268/982C9FEADAF7B242C5069B8F390784BF/100",
* "is_yellow_vip": "0",
* "vip": "0",
* "yellow_vip_level": "0",
* "level": "0",
* "is_yellow_year_vip": "0"
* }
* </pre>
*
* @param accessToken
* @return
*/
public static QQUserInfo getUserInfo(String accessToken, String openid) {
if (StringUtils.isEmpty(accessToken) || StringUtils.isEmpty(openid)) {
return null;
}
String url = String.format(URL_GET_USERINFO, accessToken, appId, openid);
String resultString = DefaultHttp.get(url, ACCESS_TIMEOUT, GlobalConstants.UTF_8);
Logger.debug("[sso-qq]get userinfo. use url "%s"", url);
QQUserInfo userinfo = JsonUtil.fromJson(resultString, QQUserInfo.class);
if (userinfo == null || !userinfo.hasGot()) {
Logger.debug("[sso-qq]get userinfo failed, with result of "%s"", resultString);
return null;
}
Logger.debug("[sso-qq]get userinfo success, with result of "%s"", resultString);
return userinfo;
}
常见问题
网页跳转提示 "redirect_uri_mismatch"
通常是应用配置中的域名与当前开发服务器访问地址不一致导致,参照案例中的本地开发环境准备小节
api调用返回错误
查看返回的ret字段,对于非0值的ret则表示异常结果,可通过以下地址查询错误原因:
http://wiki.connect.qq.com/%E5%85%AC%E5%85%B1%E8%BF%94%E5%9B%9E%E7%A0%81%E8%AF%B4%E6%98%8E
接口调用过于频繁或超过限制
应用系统可做好access_token的存储,此外对于用户数据(昵称、头像)也做好缓存或持久化,以减少接口的调用频度。


![[延边大学招生官网]延边大学官网:http://www.ybu.edu.cn/](https://m.51test.net/img.wykw.com/uploadfile/images/template/36.jpg)
![[我的未来谁做主观后感]我的未来谁做主评价](http://img.dagaqi.com/uploadfile/2019/0905/20190905052949913.png)



