引言:
原文来自「微信开发者」公众号,小程序技术研发工程师 binnie 原创。
本文主要介绍了「用户信息功能页」、「接口 + 用户头像昵称填写」2 种方式支持插件登录获取用户信息。
用户信息功能页
获取信息:
插件 openid、UnionID、用户头像昵称等
适用场景:
多应用数据打通场景
常见问题:
Q1:为什么获取的是插件 openid 而不是小程序 openid?
通过小程序 openid,开发者仅能识别用户使用小程序,无法了解使用插件的情况。考虑到同一个插件应用于不同的小程序的场景,插件 openid 便于开发者识别用户使用插件的情况,从而提供更便捷的服务。
Q2:有可能出现一样的小程序 openid 和插件 openid 吗?
有可能。二者的原理如下:
- 插件 openid = 用户 ID + 插件 AppID
- 小程序 openid = 用户 ID + 小程序 AppID
所以AppID 一样的小程序和插件,小程序 openid 与插件 openid 一样。
接口 + 头像昵称填写
获取信息:
插件 openpid(请注意是 openpid,不是 openid)、用户头像昵称等
适用场景:
获取用户信息、唯一凭证等场景
参考文档:
wx.pluginLogin 接口文档、头像昵称填写文档
常见问题:
Q1:插件 openpid 是什么?有什么作用呢?
插件 openpid = 用户 ID + 宿主小程序 AppID + 插件 AppID
基于以上原理,当且仅当同一个用户,在同一个宿主小程序,使用同一个插件时,插件 openpid 才会相同。因此,插件 openpid 是提供给插件开发者判断用户在小程序使用插件的唯一标识。
Q2:插件 openpid 和插件 openid 有什么区别?
二者生成方式不同,但是作用类似,均是判断用户在小程序使用插件的标识,用于识别用户。
Q3:仅靠 wx.pluginLogin 接口能否获得用户头像昵称?
不可以,调用 wx.pluginLogin 接口可获取插件用户标志凭证(code)用于换取插件 openpid。获取用户头像昵称需要结合「头像昵称填写」能力使用。代码如下:
// 昵称输入键盘
<input type="nickname" />
// open-type="chooseAvatar" 获取用户头像
// bindchooseavatar 回调获取到头像信息
<button open-type="chooseAvatar" bindchooseavatar="bindchooseavatar">xxx</button>
小程序已有「用户信息功能页」、「接口 + 用户头像昵称填写」2 种方式支持插件登录获取用户信息。不同的插件登录方式适用于不同的业务场景,开发者可以根据业务需求进行合理选择。