实现目标分解为2个部分
[part-1]: web页面分享
[part-2]: 记录分享数据
- 分享行为链表记录
- 链表每个节点记录
- 节点载体 (节点内容存在的平台, 例如: 行采家, 微信朋友圈)
- 阅读次数
- 分享情况 (Array.<map>)
- 被分享哪里 (例如 微信朋友圈)
- 分享用户信息 (社交平台用户信息)
- "我们"平台绑定的用户信息 (如果存在)
- 分享时间
让我们分别来讨论一下2个部分的实现可行性
[part-1]: web页面分享
这部分比较简单, 使用第三方SDK(mobshare, 百度分享 等) 绑定第三方社交平台的账号可以比较快速的实现页面分享
[part-2]: 记录分享数据
微信实现:
对微信开放平台的api做了研究和实践, 理论上应该可以实现.
依赖微信开放的2个内容:
1. 微信网页授权
如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进 而实现业务逻辑。
在对公众号授权的域名做配置后, 以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
使用测试账号进行测试, 提示必须用户必须关注公众号才能获得授权.
查资料说是因为测试号的原因, 本来想用 [大家服务] 的公众号测试一下, 但是正式的公众号设置微信要求授权域名必须验证, 需要上传指定文件到正式服务器, 就暂时没有做了. 应该是可以在用户授权后拿到用户信息.
2. 微信JS-SDK
使用js-sdk的分享接口
获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
wx.onMenuShareTimeline({
title: '', // 分享标题
link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
**在此把记录信息发送回我们的服务器**
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
以下代码类似:
获取“分享给朋友”按钮点击状态及自定义分享内容接口
获取“分享到QQ”按钮点击状态及自定义分享内容接口
获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
获取“分享到QQ空间”按钮点击状态及自定义分享内容接口
可能触犯的微信规则:
请注意不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限,详细规则请查看:朋友圈管理常见问题 。
其他平台的实现方案有待研究...
另外李曦推荐了一个实现了类似功能的初创公司(成立1年多)产品:
宝瓶
核心功能就是分享链, 目前还没有开发接口, 只能手动"封装"网页发送分享.
体验了一下, 还很粗糙. bug非常多. PC端也不能登录(居然直接跳转到了localhost, 太不靠谱), 统计数据也不准确.
昨天还看的到我发的文章
今天已经看不到了
分享数据和传播图一直没有看到