[TOC]
#### 粉丝信息获取、使用及更新的规范
由于系统中模块众中,如果模块不按规范及系统提供的方法来操作粉丝信息,很容易会使粉丝信息错乱、重复,不仅系统会产生很多冗余数据,对于构造统一化的粉丝及会员数据中心也带来了很大的困难
以下来梳理一下各种情况如何使用系统中的方法来获取和更新粉丝信息。
<wrap em>注: 模块中禁止直接插入、更新、删除操作mapping_fans表,此规范适合于 0.7_20151012 以后的版本</wrap>
#### 粉丝的Openid获取方法
获取粉丝的Openid有两种办法:
1. 通过回复关键字来获取粉丝的openid信息 此方法适合于没有任何服务号权限的公众号,可以通过设置回复关键字,在回复的信息中(文本、图文)中添加链接
此链接会自动带上粉丝的Openid数据,进入系统后可通过$_W['openid']和$_W['fans']来查看
2. 通过OAuth接口来获取粉丝的openid信息 此方法并不需要开发者来主动调用,当公众号是服务号或是使用了【借用OAuth权项】(管理公众号 - 功能选项 - 借用OAuth权限)的话 系统会自动在粉丝进入页面的时候获取到其openid的信息,使用方法同上,通过$_W['openid']和$_W['fans']来查看
#### 粉丝信息获取方法
此处讨论的通过微信接口获取粉丝数据是基于服务号的前提//
获取粉丝信息有多种方法及渠道,总结有以下几种:
1. 已关注的粉丝从**微信接口**获取数据数据(昵称,头像等)
2. 已关注的粉丝获取在**微擎系统**资料数据(电话,邮箱,性别等)
3. 未关注的粉丝从微信接口获取数据数据(昵称,头像等)
##### **已关注的粉丝从微信接口获取昵称及头像数据**
已关注的粉丝,当公众号有获取信息权限的时候,可直接通过$_W['fans']来得到粉丝的数据 \\ 也可以手动通过 mc_fansinfo($openid) 函数来获取。注:此数据只是微信端的昵称,头像等数据
结构如下:
```
$_W['fans'] = array(
'fanid' => '33790' // 粉丝id
'acid' => '6'
'uniacid' => '6' // 公众号id
'uid' => '6944' // 用户id
'openid' => 'oTKzFjv2FQ7EetJGLbxuGY6m0KmY'
'groupid' => '0' // 用户组id
'salt' => 'FRj8Bffr'
'follow' => '1' // 是否关注
'followtime' => '1444465409' // 关注时间
'unfollowtime' => '0' // 取消关注
'tag' => array(
'subscribe' => '1' // 关注
'openid' => 'oTKzFjv2FQ7EetJGLbxuGY6m0KmY'
'nickname' => '微擎 ' //昵称
'sex' => '1' // 性别
'language' => 'zh_CN' // 语言
'city' => '北京'// 居住城市
'province' => '北京' // 省份
'country' => '中国' // 国家
'subscribe_time' => '1444465409' // 关注时间
'remark' => ''
'groupid' => '0'
'avatar' => 'http://wx.qlogo.cn/mmopen/GibvHudxmlJYsBJRlWbtSXADlpc0IatIuAjS2Fm9oF6tvIq1GfPMibhyRRcdJdR4ZA0x6CIx3030I37OuGEFf4kg/0'// 头像
)
'updatetime' => '1444465531' // 更新日期
'nickname' => '微擎' // 昵称
'unionid' => ''
'from_user' => 'oTKzFjv2FQ7EetJGLbxuGY6m0KmY' // 当前粉丝标识
)
```
##### **已关注的粉丝获取在微擎系统会员资料数据**
除了可以获取粉丝在微信端的昵称等数据外,也可以获取到其在微擎系统中登记的额外的会员数据资料。\\ 通过 mc_fetch($uid) 函数来获取。此处的$uid可以是$_W['fans'][uid]也可以是$_W['openid']。
\\ 会员资料数据如下:
```
array(
'uid' => '6944' // 用户id
'uniacid' => '6' // 公众号id
'mobile' => // 手机
'email' => 'ab75d41d9679b7742fe3c8a7c9577e2a@we7.cc' // email地址
'password' => 'c1e1d8b8c781f0df6866a495a849f9df' // 密码
'salt' => 'qefDD454'
'groupid' => '6' // 用户组id
'credit1' => '0.00' // 积分
'credit2' => '0.00' // 余额
'credit3' => '0.00' // 备用1
'credit4' => '0.00' // 备用2
'credit5' => '0.00' // 备用3
'createtime' => '1444465531' // 创建时间
'realname' => // 真实姓名
'nickname' => '微擎' // 昵称
'avatar' => 'http://wx.qlogo.cn/mmopen/GibvHudxmlJYsBJRlWbtSXADlpc0IatIuAjS2Fm9oF6tvIq1GfPMibhyRRcdJdR4ZA0x6CIx3030I37OuGEFf4kg/132' //头像
'qq' => //QQ号
'vip' => '0' // 会员
'gender' => '1' // 性别
'birthyear' => '0' // 出生年
'birthmonth' => '0' // 出生月
'birthday' => '0' // 出生日
'constellation' => // 星座
'zodiac' => '', //生肖
'telephone' => // 手机号
'idcard' => // 身份证号
'studentid' => // 学号
'grade' => // 学籍
'address' => //地址
'zipcode' => //邮政编码
'nationality' => '中国' // 现居国家
'resideprovince' => '北京'// 现居省分
'residecity' => '北京市' // 现居地市
'residedist' => // 居住地
'graduateschool' => // 毕业院校
'company' => // 公司信息
'education' => // 教育情况
'occupation' => // 职业
'position' => // 所在位置
'revenue' => // 收入情况
'affectivestatus' => // 身高
'lookingfor' => //
'bloodtype' => // 血型
'height' => // 身高
'weight' => // 体重
'alipay' => // 支付宝
'msn' => // msn
'taobao' => // 淘宝号
'site' => // 站点
'bio' =>
'interest' => // 个人兴趣
)
```
##### **未关注的粉丝从微信接口获取数据数据(借用)**
粉丝未关注公众号获取资料时,需要弹出确认授权的登录框,粉丝同意后公众号才可以获取到用户信息,此操作需要手动调动函数来完成。 \\ 通过 mc_oauth_userinfo() 来获取粉丝信息,如下:
```
if (empty($_W['fans']['nickname'])) {
mc_oauth_userinfo();
}
print_r($_W['fans']);
$_W['fans'] = array(
'uid' => 0,
'openid' => 'oTKzFjv2FQ7EetJGLbxuGY6m0KmY',
'follow' => '0' // 是否关注
'tag' => array(
'subscribe' => '1' // 关注
'openid' => 'oTKzFjv2FQ7EetJGLbxuGY6m0KmY'
'nickname' => '微擎 ' //昵称
'sex' => '1' // 性别
'language' => 'zh_CN' // 语言
'city' => '北京'// 居住城市
'province' => '北京' // 省份
'country' => '中国' // 国家
'subscribe_time' => '1444465409' // 关注时间
'remark' => ''
'groupid' => '0'
'avatar' => 'http://wx.qlogo.cn/mmopen/GibvHudxmlJYsBJRlWbtSXADlpc0IatIuAjS2Fm9oF6tvIq1GfPMibhyRRcdJdR4ZA0x6CIx3030I37OuGEFf4kg/0'// 头像
)
)
```
#### 强制粉丝登记扩展信息方法(会员信息)
在使用一些功能时,需要用户的一些额外信息,比如真实姓名,手机号等,才能使用,需要粉丝进行登记操作,使用 mc_require($uid, $fields) 来让用户登录信息。如下:
```
//注:第一个参数同样接受Openid或是Uid
//此方法会判断用户是否已经填写过资料,如果填写过了就会继续向下执行,如果未填写,会跳转到填写界面
mc_require($_W['fans']['uid'], array('realname', 'mobile'));
```
注: 无论粉丝是否关注公众号,都可以产生一条uid数据也是通过$_W['fans']['uid']来获取
#### 更新已关注粉丝扩展信息方法(会员信息)
在模块功能开发中如果需要更新一些资料信息,比如真实姓名,手机号等,可以使用 mc_update()函数来操作
```
//注:第一个参数同样接受Openid或是Uid
mc_update($_W['member']['uid'],array('email' => 'test@163.com'));
```
- 入门
- 系统安装
- 接入公众平台
- 关键字回复
- 更上一层楼
- 编码规范
- php编码规范
- html&css编码规范
- JavaScript编码规范
- 系统概述
- 结构概述
- 入口脚本
- 微擎MVC
- URL路由&创建
- $_W&全局变量
- 加载器
- 错误处理
- 日志记录
- 模板
- 模板标签
- 数据调用
- 常用变量
- 手机端组件
- 概述及依赖
- 图像上传
- 弹出选项
- 后台组件
- 概述及依赖
- 后台文件上传
- 富文本编辑器
- 系统链接选择器
- 其它常用组件
- 数据库
- 参数绑定
- 数据操作
- 主从配置
- 连接其它数据库
- 缓存
- 配置
- 缓存操作
- Http请求
- 概述及依赖
- GET&POST请求
- 发送邮件
- 会员与积分
- 统一用户中心
- 借用OAuth
- 积分操作
- 资料操作
- 卡券
- 营销卡券
- 会员卡
- 消息响应
- 消息概述
- 消息响应
- 微信API
- 公众号AccessToken
- 共享收货地址(废弃)
- 共享收货地址(新)
- 粉丝标签
- 客服消息
- 模板消息
- 粉丝信息
- 素材
- 群发
- 二维码
- 在线支付
- 概述及依赖
- 发起支付(PHP)
- 发起支付(JS)
- 验证支付
- 模块
- 设计模块
- 目录结构
- module.php
- processor.php
- site.php
- receiver.php
- 模块高级专题
- 自定义分享
- 智能应答
- 微信卡券
- 远程附件
- 权限控制
- 特殊事件触发模块
- 粉丝信息
- 小程序
- 概述
- Uitl类
- 云服务
- 云API
- 系统接口
- 模块云配置
- 云短信
- 云短信错误代码
- 云短信发送函数
- 批量群发短信
- 应用推广
- 悬赏文案
- 折扣码
- 系统消息
- 开发者等级资料认证
- 应用标签
- 模块自动检测订阅支持
- 小程序
- 开发实例
- 参数设置
- 常见问题