阅读模式:

一键分享到QQ空间、QQ好友、新浪微博、微信代码

查看:137297  回复:35  类型:  来源:php自学网  标签 javascript

        通过qq空间qq聊天新浪微博和微信二维码分享平台提供的接口实现把网页中对应的图片、标题、描述的信息参数用javascript获取后传进接口中,实现一键分享

        使用到的接口(测试时需要登录,网址和图片必须是公网的,不能localhost,QQ图片不能太宽,太宽标题描述会undefiend):

            1.分享到QQ空间接口

https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey

?url=你的网址

&sharesource=qzone

&title=你的分享标题

&pics=你的分享图片

&summary=你的分享描述信息

            2.分享给QQ好友接口

http://connect.qq.com/widget/shareqq/index.html

?url=你的分享网址

&sharesource=qzone

&title=你的分享标题

&pics=你的分享图片地址

&summary=你的分享描述

&desc=你的分享简述

            3.分享到新浪微博接口

http://service.weibo.com/share/share.php

?url=你的分享网址

&sharesource=weibo

&title=你的分享标题

&pic=你的分享图片

&appkey=你的key需要在新浪微博开放平台中申请


一键分享代码参考如下:

<div>分享到:</div> 
<div onclick="shareTo('qzone')">     
    <img src="https://zixuephp.net/static/images/qqzoneshare.png" width="32"> 
</div> 
<div onclick="shareTo('qq')">     
    <img src="https://zixuephp.net/static/images/qqshare.png" width="32"> 
</div> 
<div onclick="shareTo('sina')">     
    <img src="https://zixuephp.net/static/images/sinaweiboshare.png" width="32"> 
</div> 
<div onclick="shareTo('wechat')">     
    <img src="https://zixuephp.net/static/images/wechatshare.png" width="32"> 
</div>
function shareTo(types){

    var title,imageUrl,url,description,keywords;

    //获取文章标题
    title = document.title;

    //获取网页中内容的第一张图片地址作为分享图
    //imageUrl = document.images[0].src;
    imageUrl = document.getElementById("pcdetails").getElementsByTagName("img")[0];
    //当内容中没有图片时,设置分享图片为网站logo
    if(typeof imageUrl == 'undefined'){
        imageUrl = 'https://'+window.location.host+'/static/images/logo.png';
    } else {
        imageUrl = imageUrl.src;
    }

    //获取当前网页url
    url = document.location.href;

    //获取网页描述
    description = document.querySelector('meta[name="description"]').getAttribute('content');

    //获取网页关键字
    keywords = document.querySelector('meta[name="keywords"]').getAttribute('content');

    //qq空间接口的传参
    if(types=='qzone'){
        window.open('https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url='+url+'&sharesource=qzone&title='+title+'&pics='+imageUrl+'&summary='+description);
    }
    //新浪微博接口的传参
    if(types=='sina'){
        window.open('http://service.weibo.com/share/share.php?url='+url+'&sharesource=weibo&title='+title+'&pic='+imageUrl+'&appkey=2706825840');
    }
    //qq好友接口的传参
    if(types == 'qq'){
        window.open('http://connect.qq.com/widget/shareqq/index.html?url='+url+'&sharesource=qzone&title='+title+'&pics='+imageUrl+'&summary='+description+'&desc='+keywords);
    }
    //生成二维码给微信扫描分享
    if(types == 'wechat'){
        //在线二维码生成只支持小批量调用,过多访问会限制403.
        // https://zixuephp.net/inc/qrcode_img.php接口参数:url:二维码内容,size:二维码图片大小值1-10
        window.open('https://zixuephp.net/inc/qrcode_img.php?url='+url);
    }

}

使用说明:

    纯js使用时id改成自己站点的id选择器来获取。如果调试不成功,可以尝试本站中的分享功能,分享时会打开新窗口,那条链接是最终要分享的,已经拼接好的参数链接,可以复制进行比对参考。

最终分享链接示例:

    1.分享到qq空间:

https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=https://zixuephp.net/article-309.html&sharesource=qzone&title=一键分享到QQ空间、QQ好友、新浪微博、微信代码&pics=http://zixuephp.net/uploads/image/20170810/1502335815192079.png&summary=通过各自平台的开发接口,进行参数指定,进行一键分享javascript代码功能

    2.分享到qq好友:

https://connect.qq.com/widget/shareqq/index.html?url=https://zixuephp.net/article-309.html&sharesource=qzone&title=一键分享到QQ空间、QQ好友、新浪微博、微信代码&pics=https://zixuephp.net/static/images/qqshare.png&summary=通过各自平台的开发接口,进行参数指定,进行一键分享javascript代码功能&desc=php自学网一个web开发交流的网站

    3.分享到新浪微博:

http://service.weibo.com/share/share.php?url=https://zixuephp.net/article-309.html&sharesource=weibo&title=一键分享到QQ空间、QQ好友、新浪微博、微信代码&pic=https://zixuephp.net/uploads/image/20170810/1502335815192079.png&appkey=2706825840

    4.分享到微信(建议jquery.qrcode.js生成二维码方式)

jquery生成二维码方式预览:

jquery.qrcode.js生成二维码demo.html

下载代码:

jquery.qrcode.js生成二维码demo.rar

分享效果点击本站文章分享功能,效果图如下:

一键分享js代码

分享到:
50 35

*有问题之处烦请在评论中指出非常感谢!
不是我想要的内容,继续搜索:

扫描二维码手机查看

最新评论:
该  发表于 2017-12-04 17:46:08  中国重庆重庆
沙发
mark 回复
站长 2017-12-04 20:06 中国广东深圳
回复
爱像风筝断了线  发表于 2018-01-31 17:14:36  中国福建福州
板凳
手机端不实用,不能拉起app进行分享,有什么方法可以拉起QQ微信分享吗? 回复
站长 2018-02-01 15:22 中国广东深圳
这个是网页端分享呢。大部分网站都是这么分享的。但有些app会自带分享功能的。在网页中可以使用tencent://打开qq,app其他的不太了解了。 回复
爱像风筝断了线  发表于 2018-01-31 17:18:55  中国福建福州
地板
https://luoximu.jimdo.com/用jimdo做的一个网站,完全不懂网站制作,自己慢慢摸索出来的,最近想弄一个像你这样的评论系统和分享按钮,不知道怎么弄。 回复
站长 2018-02-01 16:49 中国广东深圳
回复
放飞、  发表于 2018-02-06 17:49:27  中国北京北京
4楼
手机端qq分享出去可以点击链接,但是网页版的话粉爱你刚出去为什么不能点击呢?链接里面只有http://test.muwai.com/Product/product_detail/id/5.html?sharesource,后面的参数没有了。。。 我的代码,可以帮我看下吗?谢谢,并且手机端分享到qq空间登录之后跳转到分享页面,瞬间又回到登录页面了,,哎 回复
站长 2018-02-06 20:43 中国广东深圳
我测试正常呢。 回复
放飞、  发表于 2018-02-08 11:13:25  中国北京北京
5楼
楼主,能加你qq求教下吗?我们最近移动端要分享微信,朋友圈,qq,空间,微博、、昨天对着你的例子写了,但是有点小问题,想求教下可以吗?924103119 回复
站长 2018-02-10 00:31 中国广东深圳
回复
Sunflower  发表于 2018-05-22 16:36:19  中国上海上海
6楼
站长,为啥我调用分享到空间的接口获取不到title和summary的值呢?页面上显示一直都是undefiend,但是分享成功了。 回复
站长 2018-05-25 09:06 中国广东深圳
https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http://www.zixuephp.net/article-309.html?sharesource=qzone&title=%E4%B8%80%E9%94%AE%E5%88%86%E4%BA%AB%E5%88%B0QQ%E7%A9%BA%E9%97%B4%E3%80%81QQ%E5%A5%BD%E5%8F%8B%E3%80%81%E6%96%B0%E6%B5%AA%E5%BE%AE%E5%8D%9A%E3%80%81%E5%BE%AE%E4%BF%A1%E4%BB%A3%E7%A0%81&pics=http://www.zixuephp.net/uploads/image/20170810/1502335815192079.png&summary=%E9%80%9A%E8%BF%87%E5%90%84%E8%87%AA%E5%B9%B3%E5%8F%B0%E7%9A%84%E5%BC%80%E5%8F%91%E6%8E%A5%E5%8F%A3%EF%BC%8C%E8%BF%9B%E8%A1%8C%E5%8F%82%E6%95%B0%E6%8C%87%E5%AE%9A%EF%BC%8C%E8%BF%9B%E8%A1%8C%E4%B8%80%E9%94%AE%E5%88%86%E4%BA%ABjavascript%E4%BB%A3%E7%A0%81%E5%8A%9F%E8%83%BD 这是我这里点击分享后跳转的地址,看下参数有没有没写对的 回复
那年的雨 2018-06-28 22:06 中国重庆重庆电信 回复 亲,你是怎么解决的?我也遇到这个问题了,不能获取title等值
站长 2019-10-18 18:10 中国广东省深圳市南山区 回复 分享到QQ好友时分享的图片太宽会导致title和summary的值undefiend
Sunflower  发表于 2018-05-22 16:37:45  中国上海上海
7楼
分享到好友一直都是发送失败呢 回复
站长 2018-05-25 09:16 中国广东深圳
分享到QQ好友的接口已经是更新了,最新的请参考这里。
https://connect.qq.com/intro/sharetoqq
回复
热闹 2018-08-06 14:08 中国上海上海电信 回复 网站失效了呢 请问有最新的网站吗
蛟龙  发表于 2018-06-13 19:26:19  中国北京北京联通
8楼
十分感谢站长耐心的帮助,成功搞定了pc 页面对于qq,微信,微博的分享。遇到的坑:注意地址栏后面带的参数的格式,比如url,图片的地址都得是有效的公网地址。微信分享的时候需要自己先写一个html,借助qrcode.js 生成二维码,然后把最终需要跳转的url 传过去就可以了 回复
站长 2018-06-13 20:21 中国广东深圳电信
回复
Troy_CIZION 2018-10-05 10:02 韩国首尔XXXX
请问,手机端有解没?
手机端qq好友分享的时候,弹出的是电脑端的登陆画面,体验很差
回复
彪‘、;。歌  发表于 2018-08-28 11:59:49  中国陕西西安电信
9楼
未登录qq时进行qq好友不停的闪 回复
站长 2018-08-28 16:12 中国广东深圳电信
是不是你那多次的打开了分享链接了 回复
~~~时光不老  发表于 2018-09-11 16:19:19  中国吉林长春联通
10楼
为什么分享之后的链接打开的页面不是分享的那个页面啊 回复
站长 2018-09-11 19:03 中国广东深圳电信
分享链接中url参数就是你的网址链接,你指定哪个链接跳转时就是哪个链接了。你可以在获取本页面链接时,alert()弹窗看看你实际获取到的链接。 回复
清风如醉  发表于 2018-09-18 11:02:39  中国北京北京联通
11楼
我这个本地登陆QQ 然后点击分享之后跳转到分享QQ 界面 那个登录框一直在闪,关闭都关不了 回复
站长 2018-10-31 16:55 中国广东深圳电信
回复
Troy_CIZION  发表于 2018-10-05 10:02:59  韩国首尔XXXX
12楼
请问,手机端有解没? 手机端qq好友分享的时候,弹出的是电脑端的登陆画面,体验很差 回复
站长 2018-10-16 16:01 中国广东深圳电信
只有这样的 回复
龙仔  发表于 2018-12-23 00:39:13  中国广西南宁移动
13楼
这个可以帮我做一个吗 http://connect.qq.com/widget/shareqq/index.html?url=你的分享网址&sharesource=qzone&title=你的分享标题&pics=你的分享图片地址&summary=你的分享描述&desc=你的分享简述 回复
军  发表于 2019-08-12 15:20:00  中国上海市上海市
14楼
回复
2019-08-12 15:20 中国上海市上海市
112 回复
2019-08-12 15:08 中国上海市上海市 回复 333
不请自来  发表于 2019-09-05 18:49:05  中国上海市上海市闵行区
15楼
你好,我这边可以转载吗 回复
站长 2019-09-06 23:06
可以的。 回复
晨风  发表于 5天前  中国北京市北京市海淀区
16楼
aaa 回复
回复:[主题]
表情:
 提交评论
清空

发布评论:


登录:
  表情:
评论话题
推荐阅读:
centos 7 修改系统屏幕分辨率   阅读:50080面试的时候回去等通知,等电话的真实意思   阅读:26450php压缩页面的html代码一行显示   阅读:8699php删除一个文件夹内的所有文件夹和文件   阅读:5854php设置cookie为HttpOnly防止XSS攻击   阅读:14227面试的时候和你谈理想,是理想or入坑?   阅读:12243关于PHP程序员技术职业生涯规划   阅读:3738php 读取和设置redis的键值   阅读:8307linux命令中执行php脚本   阅读:9460mysql 为什么添加索引可以提高访问速度   阅读:7070php冒泡排序法   阅读:15984一步步带你,如何网站架构   阅读:5050一步步带你,如何网站架构   阅读:5050php+redis实现消息队列   阅读:17004centos 7 安装 samba 服务   阅读:7843面试的时候和你谈理想,是理想or入坑?   阅读:12243centos 7 安装 nginx-1.11.10   阅读:9597用php从1乘到100的值   阅读:7295最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:14945php设置cookie为HttpOnly防止XSS攻击   阅读:14227mysql数据库性能的基本优化   阅读:5242mysql5.7开启sql日志的配置   阅读:10779php生成二维码   阅读:7995centos 7 设置 nginx-1.11.10 开机启动   阅读:9027linux时间戳有趣的情人节秒1234567890   阅读:6400php打印三角形   阅读:12922十张GIF让你弄懂递归等概念   阅读:7120栈和堆的区别   阅读:5958php 获取当前前后年、月、星期、日、时分秒的时间   阅读:7823php设置cookie为HttpOnly防止XSS攻击   阅读:14227用php从1加到100的值   阅读:10124linux php7编译安装mongodb扩展   阅读:10138mysql5.7主从同步中binlog同步模式详解   阅读:9250TCP的三次握手(建立连接)和四次挥手(关闭连接)   阅读:4852面试的时候和你谈理想,是理想or入坑?   阅读:12243爱编程,也爱健康   阅读:5235php 读取和设置redis的键值   阅读:8307给php7安装redis扩展库   阅读:9434php设置cookie为HttpOnly防止XSS攻击   阅读:14227php冒泡排序法   阅读:15984面试的时候和你谈理想,是理想or入坑?   阅读:12243centos 7 安装 redis 3.2.9   阅读:7619最简单的Banner轮播左右切换效果代码及实现思路(附带源码)   阅读:34505网站局部小图片优化-base64编码图片   阅读:21445csv文件一键导入数据到mysql数据库   阅读:7756TCP的三次握手(建立连接)和四次挥手(关闭连接)   阅读:4852移动端js触摸touch详解(附带案例源码)   阅读:18749shell脚本统计当前服务器并发连接数   阅读:8918php设置cookie为HttpOnly防止XSS攻击   阅读:14227HTTP 1.1 协议详解   阅读:15730