帐号管理

用户登录

对AbleCloud平台来说,微信用户是来自第三方平台的用户。可以使用微信用户的OpenID登录AbleCloud平台,从而成为开发者所提供服务的使用者。 该“登录”操作的目的一般是获取用户在AbleCloud平台对应的帐号信息,以方便通过AbleCloud平台提供的接口访问云端或设备提供的服务。 使用微信用户的OpenID第一次登录AbleCloud平台时(接收到用户关注公众号的事件时处理),平台会自动为该用户分配ID。后续再使用这个OpenID时,平台将返回相同的帐号信息。

接收到用户关注公众号的事件时,调用ACBridgeWeChat::onEventSubscribe处理该事件,完成微信用户在AbleCloud平台的首次登录。

// 实例化ACBridgeWeChat对象
// 参数$accessToken是微信公众号的Access Token。注意:微信的Access Token是有时效性的。
// 参数$jsTicket是微信公众号的JS API Ticket。注意:微信的JS API Ticket也是有时效性的。
$wxBridge = new ACBridgeWeChat($accessToken, $jsTicket);
// 处理用户关注公众号的事件。
// $xmlMsg是微信公众号平台推送的原始XML消息内容;$unionId是关注公众号的用户在微信平台对应的UnionID。如果不提供该参数,则无法识别同一个用户关注开发者的多个微信公众号的情况。
$wxBridge->onEventSubscribe($xmlMsg, $unionId);

其它场景下,可以调用ACBridgeWeChat类的其它接口直接登录,获取ACUser对象。

// 实例化ACBridgeWeChat对象
// 参数$accessToken是微信公众号的Access Token。注意:微信的Access Token是有时效性的。
// 参数$jsTicket是微信公众号的JS API Ticket。注意:微信的JS API Ticket也是有时效性的。
$wxBridge = new ACBridgeWeChat($accessToken, $jsTicket);
// 使用用户的OpenID登录
$user = $wxBridge->getUser($openId);

或者通过ACCountMgr提供的方法登录,获取ACUser对象。

// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 使用微信用户的OpenID登录。参数$openId是微信用户的OpenID;'weixin'用于标记第三方用户来自微信平台。
$user = $accountMgr->getUserByOpenId($openId, 'weixin');

绑定手机号

AbleCloud平台只能自动获取用户的微信OpenID信息。关于用户的其它信息需要开发者或用户额外提供。 如为安全起见,可以验证并绑定用户的手机。

向用户的手机发送验证码

// 获取账号管理对象
$accountMgr = ACClient::getAccountMgr();
// 发送验证码
// 参数$phone为字符串,是用户的手机号。
// 参数$template是拟采用的短信模板的编号。
// 参数$timeout是验证码的有效时长。
$accountMgr->sendVerifyCode($phone, $template, $timeout);

注:向用户发送手机验证码时,要求开发者在AbleCloud平台已经配置了手机短信息模板等参数,并且对于向同一用户发送手机短信息有频次限制。

根据验证码绑定用户的手机

// 实例化ACBridgeWeChat对象
// 参数$accessToken是微信公众号的Access Token。注意:微信的Access Token是有时效性的。
// 参数$jsTicket是微信公众号的JS API Ticket。注意:微信的JS API Ticket也是有时效性的。
$wxBridge = new ACBridgeWeChat($accessToken, $jsTicket);
// 提交验证码,绑定手机号
// 参数$verifyCode是字符串,表示用户修改手机号码的验证码。
// 参数$openId为字符串,是微信用户的OpenID,开发者需要参考微信官方文档去获取OpenID。
$wxBridge->setPhone($openId, $phone, $verifyCode);

用户帐号的附加属性

设置用户帐号的附加属性

设置帐号的附加属性之前,应通过开发者管理控制台定义帐号的附加属性列。

// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 设置帐号的附加属性。附加属性以键值对组成的关联数组保存,记为$profile。
$accountMgr->setUserProfile($user, $profile);

获取用户帐号的附加属性

// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 获取用户的附加属性
$keyValues = $accountMgr->getUserProfile($user);

获取用户的微信OpenID

已知用户在AbleCloud平台上的ID的条件下,可以获取用户对应的微信OpenID。

通过ACBridgeWeChat类提供的方法获取用户的OpenID。

// 实例化ACBridgeWeChat对象
$wxBridge = new ACBridgeWeChat($accessToken, $jsTicket);
// 获取用户的OpenID
$openId = $wxBridge->getUserOpenId($userId);

通过ACCountMgr类提供的方法获取用户的OpenID。

// 实例化ACAccountMgr对象
$accountMgr = ACClient::getAccountMgr();
// 获取用户的OpenID。参数$userId是用户在AbleCloud平台上的ID;'weixin'用于标记第三方用户来自微信平台。
$openId = $accountMgr->getUserOpenId($userId, 'weixin');