用微信扫一个扫二维码添加联系人,然后我的手机自动给所有的微信联系人发了一条信息

4962人阅读
二维码(2)
nodejs(2)
接上一章,我们已经基本把业务逻辑分析清楚了
下面我们第一步,实现二维码的web动态生成。
页面的二维码包含的信息我在上一篇已经解释过,是一个页面的sessionID,这个sessionID主要是标示出哪个页面是哪个页面,例如你打开N个页面,必然每个页面的标示会不一样,只有你用手机扫描了某一个页面(page a)的二维码,将来响应操作的页面只能是page a。
实现二维码的类库非常多,如果你的平台是java的,可以选择zxing这种功能强大且应用广泛的类库,不过我们今天打算采用一个响应高并发无阻塞的服务器端技术:nodejs。
关于nodejs我也没有太多深入的研究,不过该技术是采用事件驱动模型的无阻塞服务。举一个案例,云输入法用nodejs作为服务器,非常的完美。
关于nodejs的安装已经相关的扩展如何安装,请自行去官网学习:http://nodejs.org
本文的例子将使用以下一些扩展:
QRcode,这个扩展是在nodejs生成二维码的扩展,可以生成客户端和服务器端,为了兼容性考虑,我们只用服务端的功能。由于服务端的功能需要一些额外的lib,例如canvas和colors,需要额外下载和配置。canvas是本地码,需要在不同的OS环境下编译,具体如何操作请查阅canvas的安装指南。http和url,这2个扩展是nodejs基本扩展,提供web服务以及对url的分析。fs,本地文件访问,这个我们不一定用,但是如果你需要将二维码保存为图片,以及读取,需要使用这个库。uuid,生成nodejs服务端的UUID的库。后面的文章我们会不断翻新今天的代码,可能还有一些新的库,例如连接XMPP服务器和redis的库,今天先不介绍。
有了这些扩展,我们第一步,引用
var QRCode = require('qrcode');
var http = require('http');
var url = require('url');
var fs = require('fs');
var UUID = require('uuid-js');
好了,我们来创建web服务:
http.createServer(function(req, res) {
var URL = url.parse(req.url);
var PATH = URL.
var uuid4 = UUID.create();
var sessionID = uuid4.toString();
if (PATH == &/qrcodeimage&) {
var sessionID = URL.
if (typeof (sessionID) != &undefined&) {
generateQRCode(sessionID, req, res);
console.log(&no sessionID&);
} else if (PATH == &/&) {
console.log(sessionID);
generateIndex(sessionID, req, res);
}).listen(8888, 'localhost');
在web服务器的代码中,我们监听8888端口,并对/和/qrcodeimage做分析
如果访问的url为/则显示主页面,调用generateIndex方法,这个方法返回欢迎页面。
如果访问的url为/qrcodeimage,则调用generateQRCode方法,这个方法将生成二维码并返回二进制流。
下面是这个2个方法:
function generateQRCode(sessionID, req, res) {
res.writeHead(200, {
'Content-Type' : 'image/png'
QRCode.draw(sessionID, function(err, canvas) {
res.end(canvas.toBuffer());
function generateIndex(sessionID, req, res) {
res.writeHead(200, {
'Content-Type' : 'text/ charset=UTF-8'
.end('&html&&body&&p align=&center&&请扫描二维码&/p&&p align=&center&&&img src=&/qrcodeimage?'
+ sessionID + '&&&/p&&/body&&/html&');
代码非常的短,也不需要做什么解释,实际上就是用户在访问首页的时候,服务器创建sessionID,并将这个ID作为创建二维码图片的参数,而服务器再根据这个参数创建响应的二维码,也就是说页面和二维码是一一关联的。
运行一下:
用任何手机二维码软件扫一下看看,和console里面log出来的uuid一致。
那么今天我们的工作到此结束,本文只是一个简单的例子,仅作测试,没有任何的容错,生产系统绝对不能这样马虎哦。
原创文章,转载请注明出处。有不明白的地方可以新浪微博找我[/xingxp]
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:31073次
排名:千里之外
评论:12条用微信扫一个二维码,然后我的手机自动给所有的微信联系人发了一条信息_百度知道
用微信扫一个二维码,然后我的手机自动给所有的微信联系人发了一条信息
扫完之后,我的手机自动给所有微信联系人发送了一天店里做活动的消息那天在一家商店看到做活动,扫二维码就有什么优惠
是给微信好友群发了消息
所以微信与联系人同步还是把它关闭了好,防止这种情况发生。
采纳率:85%
来自团队:
为您推荐:
其他类似问题
等待您来回答请问有没有必要给每篇文章都生成一个二维码,方便客户扫描分享到微信? - 搜外问答
我最近在思考这个问题,如果有必要,该用什么方法去生成二维码呢?我看有的站点已经实现了这个功能,亲们能给我一点建议吗,非常感谢!
13,582 次浏览
等 2 人赞同该回答
某日,小贱哥正在查看一篇关于网站运营的文章。
一个大大的二维码横在了文章的中间;【亲,手机扫码,看的更爽哟!】
于是小贱哥从裤袋里拿出了他那台大NOKIA,并打开了微信的扫一扫功能对着二维码晃了晃!
咔擦一声,一个黑色选项框弹了出来:【已检测到地址: ,是否打开?】
小贱哥默默的选择了是,然后兴致盎然的看起了干货!
会这么无聊?
流量多着没处放?
等 1 人赞同该回答
这个要看你的文章性质,如果你的文章满天下到处都是,没有什么私密性和唯一价值性,用户不会这么麻烦地去分享。
但也真有可能,哪一个访客闲的没有事情干的时候,会这样做。
另外,为什么不考虑下,手机端的网站做一个分享代码,点击直接到朋友圈呢?
等 1 人赞同该回答
百度分享和jiathis都有分享到微信这一功能,就是生成二维码的。
你可以直接使用,然后看看这个功能到底有没有人用。
不讨论有无必要,不过之前做个站是用Google Api自动生成的,百度一下即可
30天内高手都在交流什么
微信自媒体实战案例
从零开始玩转微信自媒体
(1 个回答)
(3 个回答)
(5 个回答)
(6 个回答)
(9 个回答)
(3 小时前)
(4 小时前)
(7 小时前)
(7 小时前)
(8 小时前)
专注、、运营
给问题设置一定金额,将更容易获得关注与回答。
选择支付方式

我要回帖

更多关于 微信扫雷群二维码 的文章

 

随机推荐