这几天从发布到全面推广,多闪已经快速的超越100万用户,迅速占领了appsotre榜首,在七麦数据中也是蝉联第一。

但因多闪包括头条产品登录采取都支持【微信第三方登录】。很多用户都反馈是否自己的关系链被多闪、甚至是抖音窃取,并且腾讯也封杀了头条系产品的【微信登录方式】,关于:“微信好友关系链”的盗取之说在互联网中传的沸沸羊羊。

我也是一个抖音用户。在账户注册的时候采取了微信第三方登录加手机号验证的形式注册的。

在互联网产品中,产品镜框里在设计账户体系时候,要求第三方登录后求进行用户手机号验证。目的是为了降低一个用户拥有多个账户,并且减少用户账户维护成本。

作为产品经理,看到网上来自朋友的各类猜疑与讨论点,就“如何获取微信好友关系链的方式”做了调研,通过梳理用户在产品使用路径,发现其实是可能做到抓取获得微信好友关系链的。


方法可能比较涉及逻辑较多,因此自己做了一张流程图方便大家理解

只要授权登录了,就可以获得好友列表?

现在很多网上吃瓜群总,认为获取关系链的本质原因是微信授权后,多闪是通过直接读取微信好友列表即可完成。这个完成路径的方式大概是:

用户通过授权登录进入到多闪(头条系产品),在授权登录中读取用户的好友、并验证好友是否存在添加关系(类似拉黑、删除的好友就不再读取),在头条服务器中上传数据。进入到多闪后反向给用户推荐好友。

要想做到直接调取用户的好友列表,首先就是要知道微信是否开放这样的接口。通过查询微信开放平台,我们可以知道微信只能给予如下

用户的基本信息:性别、昵称、头像、地区。

通过上面4个字段,是无法推算出用户与用户之间的好友关系链。我们最多也只能推算出用户的用户画像。并且这个画像是非常有限的,类似地区、用户人群占比、性别分布。

但要获得用户关系链,用户与用户之间必须要有除了空间、时间外的另一个重要因子:互相的交互行为。

但这样的交互池目前不同于在一个游戏广场中,而是需要之间互相有个联系、交流。微信作为一个熟人社交的工具,就成了这个交互池的典型代表。

所以既然我们否决了上面的方式,那我们还可以或可能从什么样的方式去获得用户A与用户B之间的关系呢?

通过分享朋友圈与点击

微信是基于熟人社交的关系,所以我们只要获取了一个用户ID后,继续获得他/她与其他人的互动行为,即可导出好友关系,方便大家理解,可以实现的方式我以下面流程图分场景介绍:

微信用户通过授权登录注册头条系产品:

该用户成了头条系的新用户:A,当这个用户在头条产品中发现了好的内容,开始分享到朋友圈或分享给微信某个好友

上面的页面图我是以朋友圈的入口,好友入口也同样。此时在微信中的好友b\c\d是点击并查看该分享内容的好友。b\c\d好友分别进入到微信浏览器下的H5头条系产品中,头条服务器可以获得对应的3个uv与分享者A的头条系ID

因为头条系的ID是来自A用户采取微信授权登录的方式获得的。

所以头条系服务器若能够通过对b\c\d的微信账号进行回溯。其实建立了下面的关系

建立了微信A在头条系产品产生的账户“ A”关联的数据好友关系分别是:b\c\d

当b\c\d用户各自分别注册了头条系产品后,产生了对应的头条系账户:"B\C\C”。


好友关系链就可以生成了,至少A与B、A与C、A与D 一定是微信好友关系



但我们的难点在于,如何通过在微信浏览器中获取b\c\d的uv外的微信标示。

微信只开放了openid


互联网研发中,运营人员也常使用h5 页面去获取数据,通过后台去抓取uv、地理位置、甚至是手机信息。比如我们投放了什么H5活动,我们都可以基于uv\pv去分析该活动的效果甚至是转化。



路径如下:


来自kevin lu(https://www.cnblogs.com/Xjng/p/3910511.html)

回到上面说的头条系产品分享朋友圈、或发送给好友列表。其实也是产生这样的url。我们的后端(头条系服务器),上面openid在微信中。每个用户是唯一标示的。

最终我们建立了一个什么关系网?

用户进入分享的url我们常可以看到下图的登录提示框


这在只有认证的服务号才可以开启的功能。但一旦通过该弹窗点击:授权登录后,我们可以获得什么关系链?

如上,我们可以获得每个用户之间的间接关系。但其实是可以回溯到:A与B用户。

这就是一个我们获得关系链的方式。再加上LBS、年龄、性别,我们甚至也可以借此再优化算法,获得更多、更准确的好友关系链。

头条系产品没有授权微信登录

回过头来,我们看下头条的产品分享到微信中。其实是没有拉取微信的授权登录

在该类H5 下我们只能获得更少的数据。但是否能够在H5分享中获得点击该页面的微信好友数据呢?

看到一篇来自财氪的报道,提出:“今日头条对微信浏览器的cookie进行了篡改,并回传到了头条的服务器。理论上来说,这种行为可能获取到微信好友信息。”

报道地址:https://zhuanlan.zhihu.com/p/55675417

就算攻破了浏览器,但仍然违规

当然技术上,能够通过微信内置浏览器去获取:分享者、阅读者的关系。那么多闪、头条系的产品能够有好友关系链其实就说的过去了。

我们看这场大战的本职:微信和头条系产品到底谁是受害者?

答案:用户才是受害者

用户的数据是个人数据,是隐私数据。用户对自己的数据使用权肯定是需要知道和并且有主动权。但目前这场所谓的关系链窃取最终让用户成了一个“透明人”

继续看微信的数据开放规范中说明:

如果获取了用户数据后用于扩展关系链等,其实是腾讯禁止的。因此若真的是上述这样逻辑,我们可以认定是头条系对用户数据的窃取后再补充到自身的关系链。

答案:明显的违规使用

最后让我们看下这一场关系链拉取的核心难点就是在蓝色页面中:基于微信浏览器中H5的数据信息获取

能不能通过在该H5页面的数据,获得可以推到出用户关系信息是关键,反而不是获取用户微信ID。

最后,我认为腾讯系产品的自身强势就是基于关系链的衍生。产品的定位就注定了这样的信息窃取行为是必然的方式之一。一款基于熟人社交的产品,好友列表一定是你的好友。这样的熟人好友关系链才是有价值的,反而是基于陌生人社交的好友关系链,可能就算你窃取了也没办法达到高频的社交行为。


在今天的数据算法中,结合用户的标签爱好、用户画像,获得【推荐给你】的这样用户列表其实不是难事。

好啦,今天的原创就在这里。我会每周坚持更新两篇

微信与多闪之争背后,好友关系链到底是如何窃取的?相关推荐

  1. 揭秘微信朋友圈这种信息推流背后的系统设计

    1.引言 信息推流(以下简称"Feed流")这种功能在我们手机APP中几乎无处不在(尤其是社交/社群产品中),最常用的就是微信朋友圈.新浪微博等. 对Feed流的定义,可以简单理解 ...

  2. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

  3. IM开发技术学习:揭秘微信朋友圈这种信息推流背后的系统设计

    本文由徐宁发表于腾讯大讲堂,原题"程序员如何把你关注的内容推送到你眼前?揭秘信息流推荐背后的系统设计",有改动和修订. 1.引言 信息推流(以下简称"Feed流" ...

  4. 微信只显示分享朋友圈和好友  屏蔽其他的分享

    wx.hideOptionMenu(); wx.showMenuItems({menuList: ['menuItem:share:appMessage','menuItem:share:timeli ...

  5. 网页分享功能 支持 微信二维码 qq空间 qq好友 新浪微博 百度贴吧 豆瓣 人人...

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 微信小程序 非webview分享给好友及生成分享海报

    微信小程序 非webview分享给好友及分享海报 UI展示 点击分享显示分享sheet: 点击生成海报,展示海报预览图片: 组件目录结构: 代码 works文件 woks.json中引入: " ...

  7. 教你“偷偷”的获取微信小游戏好友关系链数据

    好友是是很多游戏都有的功能,原因在于好友玩法可以提升用户间的互动性,增加产品和用户的黏性.对提升留存率有重要帮助.很多游戏策划和产品经理都喜欢在游戏中加入这个设定,在腾讯开发平台.空间玩吧平台也都提供 ...

  8. 【支付FM】个人免签-微信支付宝云闪付 个人二维码收款即时到账

    平台概述 [支付FM](zhifu.fm)平台是为移动端应用以及PC网页量身打造的支付服务平台.对于广大的开发者来说,您的产品只需植入一行代码,即可同时支持移动端以及PC端的多种主流支付通道. 支付背 ...

  9. 一张收款码,同时支持微信、云闪付、支付宝、信用卡支付

    想必你也有过这样的经历,在门店消费时,看过商家只张贴了一张收款码,用微信或者支付宝扫码都可以支付,同时支持微信.云闪付.支付宝.信用卡支付. 这样不管是对商家还是顾客来说确实都更加方便快捷.商家只需要 ...

  10. 个人支付宝、微信、云闪付收款

    个人支付宝.微信.云闪付收款 支付宝几年前就关闭了个人收款接口,而微信从来就没有考虑过开放个人支付接口.目前个人如果要实现人民币在线收款,一个可行的方案是利用一些第三方的小平台提供的接口.这些平台的实 ...

最新文章

  1. Servlet RequestDispatcher需要注意的情况
  2. 你在发表理科学术文章过程中有哪些经验值得借鉴
  3. 虚拟机删除后服务器内存,卸载虚拟机后仍占内存
  4. leetcode 606. Construct String from Binary Tree | 606. 根据二叉树创建字符串
  5. linux学习查看日志命令
  6. java和mysql之间的时间日期类型传递
  7. Web Hacking 101 中文版 十一、SQL 注入
  8. java中max函数blog_感受 lambda 之美!
  9. keras-yolov3 + Kalman-Filter 进行人体多目标追踪(含代码)
  10. Springboot集成JavaMailSender发送邮件
  11. 实用小工具-动软代码生成器
  12. 电音插件auto_自动电音基调查询软件助手完美支持32_64bit系统所有电音插件
  13. 三星全新贴片机SM421(S)参数性能!
  14. Deepin 深度操作系统安装教程
  15. less转换css及html里面JS的引入
  16. 360路由器WISP无线万能中继的应用
  17. android 双击点亮屏幕,手机双击点亮屏幕是怎么实现的
  18. 管理好团队的七个要点,你做到了几个?
  19. Keil中文显示设置
  20. HBuilderX连接苹果手机iPhone预览移动端页面

热门文章

  1. docker 安装 Nginx 并配置反向代理
  2. 用tushare数据自定义期货大宗商品指数(2)
  3. COOC软件一款用于文献计量和知识图谱绘制的新软件
  4. IIS PHP MYSQL出现问题_iis php mysql
  5. 0x000000c5(0X000000C5蓝屏是什么意思)
  6. Git远程操作详解(clone、remote、fetch、pull、push)
  7. 在现有Fabric 2.2.0 网络上设置和运行Caliper性能测试 实战
  8. C# 命名空间中不存在类型或命名空间名System.XXX
  9. 东南大学计算机esl排名,不是江苏考生,你不会知道,这所被戏称福建的“三本”,有多难考...
  10. 【细小碎的oi小知识点总结贴】不定时更新(显然也没人看qwq)