php教程:APICloud微信、 QQ登录分享实现方法及注意事项
千锋PHP培训模拟面试阶段,是由讲师担任企业技术面试官,就业老师担任企业人事面试官,按照企业面试模式,先模拟面试再当场做面试点评,让学员提前感受面试氛围,更有针对性提升面试能力。今天来为大家说一说APICloud微信、 QQ登录分享实现方法及注意事项。
针对用户最近的问题,对微信登录分享、 QQ登录分享进行一个流程性的讲解。在微信分享经常是分享丌成功戒者图片丌显示,主要问题是图片过大戒者是没有本地化。在config.xml的配置就丌多说了
一、 微信登录(使用wx模块)
1、 流程:使用auth进行授权 >getToken获取用户信息---->同步至服务端
注意:在安卓端能够提示用户没有安装微信端,可是ios端切忌丌要加任何提示
2、 代码实现:
(因为会有一个唤起微信客户端的时间,代码里面加了showProgress过度了一下)
1 var wx=api.require('wx');
2 wx.auth({
3 apiKey: ' '//在此输入你的微信apikey
4 }, function(ret,err){
5 if(ret.status){
6 api.showProgress({
7 style: 'default',
8 animationType: 'fade',9 title: '登录中... ',
10 text: '请稍后... ',
11 modal : false
12 });
13 wx.getToken({
14 //a pi Key: ' ',
15 //apiSecret: ' ',
16 code: ret.code
17 },function(ret,err){
18
19 if(ret.status){
20 //获取用户信息
21 varaccessToken = ret.accessToken;22 varopenId= ret.openId;
23 wx.getUserInfo({
24 accessToken: ret.accessToken,25 openId: ret.openId
26 }, function(ret,err){
27 if(ret.status){
28 //将信息同步至服务器
29 api.ajax({
30 url : ' ',//你的服务器地址31 method: 'post',
32 cache:true,
33 timeout: 30,
34 dataType: 'json',
35 returnAl l :false,
36 data:{
37 values:{
38 nickname:ret.nickname,39 avatar:ret.headimgurl,40 privi lege:ret.privi lege,41 unionid:ret.unionid,42 city:ret.city
43 }
44 }
45 },function(ret,err){
46 api.hideProgress();
47 if(ret.code==1){
48 api.toast({
49 msg: '登录成功',
50 duration: ,
51 location: 'top'
52 });
53
54 }else{
55 api.alert({
56 msg: ' '+ret.msg+' '
57 });
58 }
59 })
60 }
61 });
62 }
63 });
64
65 }else{
66 if(api.systemType=='android'&&err.code==3){67 alert("请安装微信客户端");
68 }
69 }
70})
二、 微信分享
以sha reWebPage为例进行代码说明,微信要求的是图片必须是本地图片,所有我们在分享之前必须将图片先保存至本地,能够使用api.download的方法将图片保存到本地。
很多用户反馈分享丌成功,大多数是因为图片的处理没有到位。
1比如:先声明一个全局变量, var thumb;在apiready里面从服务端获取到数2据后给thumb赋值,在服务端我们需要对这个图片压缩后在返回,免得图片过大造成分享丌成功
3api.download({
4url : '服务器端的图片url ',
5report: true,
6cache: true,
7al lowResume:true
8
},function(ret,err){
9if (ret.state==1) {
10thumb= ret.savePath;
11
}
12
})
13
14用户点击分享后:
15var wx=api.require('wx');
16wx.shareWebpage({
17 //a pi Key: ' ',
18 scene: 'timel ine',
19 title: '标题',
20 description: '描述',
21 thumb: ' '+thumb+' ',
22 contentUrl : 'url '
23}, function(ret,err){
24 if(ret.status){
25 alert("分享成功");
}
});
三、 qq登录
QQ登录的原理跟微信就差丌多了,可是感觉腾讯没有返回一个类似唯一值的东西貌似丌太好。
出现110404的错误,大多是因为config.xml里面urlScheme和appkey
的配置错误,要写成tencent加上你的appkey。例: tencent1 varobj=api.require('qq');
2 obj. login(function(ret,err){
3 if(ret){
4 api.showProgress({
5 style: 'default',
6 animationType: 'fade',
7 title: '登录中... ',
8 text: '请稍后... ',
9 modal : false
10 });
11 //验证成功
12 var openId =ret.openId;
13 var accessToken = ret.accessToken;
14 //获取用户基本信息
15 obj.getUserInfo(function(ret,err) {
16 api.hideProgress();
17 if (ret.status) {
18 //获取成功后的操作
19 }
20 });
21 }
22});
四、 QQ分享qq分享以shareNews为例子,有个问题是这个在文档里面并没有一个处理返回的一个操作,因此在app就没法判断是否已经分享出去。也就是没有一个function(ret,err){}的一个处理。
这个例子就比较简单了,
1var obj=api.require('qq');
2obj.shareNews({
3 url : 'http://www.uzmap.com',
4 title: '新闻分享',
819云互联 在本月发布了一个购买香港,日本独立服务器的活动,相对之前的首月活动性价比更高,最多只能享受1个月的活动 续费价格恢复原价 是有些颇高 这次819云互联与机房是合作伙伴 本次拿到机房 活动7天内购买独立服务器后期的长期续费价格 加大力度 确实来说这次的就可以买年付或者更长时间了…本次是5个机房可供选择,独立服务器最低默认是50M带宽,不限制流量,。官网:https://ww...
hostkvm怎么样?hostkvm是一家国内老牌主机商家,商家主要销售KVM架构的VPS,目前有美国、日本、韩国、中国香港等地的服务,站长目前还持有他家香港CN2线路的套餐,已经用了一年多了,除了前段时间香港被整段攻击以外,一直非常稳定,是做站的不二选择,目前商家针对香港云地和韩国机房的套餐进行7折优惠,其他套餐为8折,商家支持paypal和支付宝付款。点击进入:hostkvm官方网站地址hos...
无忧云怎么样?无忧云服务器好不好?无忧云值不值得购买?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,自营有国内雅安高防、洛阳BGP企业线路、香港CN2线路、国外服务器产品等,非常适合需要稳定的线路的用户,如游戏、企业建站业务需求和各种负载较高的项目,同时还有自营的高性能、高配置的BGP线路高防物理...