全部产品
云市场

获取会员信息

更新时间:2019-09-09 15:11:49

my.getAuthUserInfo

mPaaS 不提供获取会员信息的具体实现,如果您仍想使用此 API 获取会员信息,需自行实现该 API 并接入自己的会员体系。

入参

名称 类型 必填 描述
success Function 调用成功的回调函数
fail Function 调用失败的回调函数
complete Function 调用结束的回调函数(调用成功、失败都会执行)

success 返回值

名称 类型 描述
nickName String 用户昵称
avatar String 用户头像链接

代码示例

  1. my.getAuthCode({
  2. scopes: 'auth_user',
  3. success: (res) => {
  4. my.getAuthUserInfo({
  5. success: (userInfo) => {
  6. my.alert({
  7. content: userInfo.nickName
  8. });
  9. my.alert({
  10. content: userInfo.avatar
  11. });
  12. }
  13. });
  14. },
  15. });

扩展说明

Android

您需要完成以下几步来扩展 API:

  1. 实现自定义 H5Plugin,需要拦截 getAuthUserInfo 事件来处理用户授权。
  2. 出参处理:客户端返回给小程序返回的结果中,nick 会被映射为 nickNameuserAvatar 会被映射为 avatar,其他无变化。
  3. 注册自定义 H5Plugin。

自定义 H5Plugin 代码示例(不包含注册):

  1. package com.mpaas.demo.nebula;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.alipay.mobile.antui.dialog.AUNoticeDialog;
  4. import com.alipay.mobile.h5container.api.H5BridgeContext;
  5. import com.alipay.mobile.h5container.api.H5Event;
  6. import com.alipay.mobile.h5container.api.H5EventFilter;
  7. import com.alipay.mobile.h5container.api.H5SimplePlugin;
  8. public class H5GetAuthUserInfoPlugin extends H5SimplePlugin {
  9. private static final String GET_AUTH_USER_INFO = "getAuthUserInfo";
  10. @Override
  11. public void onPrepare(H5EventFilter filter) {
  12. super.onPrepare(filter);
  13. filter.addAction(GET_AUTH_USER_INFO);
  14. }
  15. @Override
  16. public boolean interceptEvent(H5Event event, final H5BridgeContext context) {
  17. if (GET_AUTH_USER_INFO.equals(event.getAction())) {
  18. AUNoticeDialog dialog = new AUNoticeDialog(event.getActivity(), "获取会员信息", "允许获取会员信息吗?", "确定", "取消");
  19. dialog.setPositiveListener(new AUNoticeDialog.OnClickPositiveListener() {
  20. @Override
  21. public void onClick() {
  22. JSONObject result = new JSONObject();
  23. result.put("nick", "Test User");
  24. result.put("userAvatar", "https://userurl.img");
  25. context.sendBridgeResult(result);
  26. }
  27. });
  28. dialog.setNegativeListener(new AUNoticeDialog.OnClickNegativeListener() {
  29. @Override
  30. public void onClick() {
  31. context.sendError(11, "用户取消");
  32. }
  33. });
  34. dialog.show();
  35. return true;
  36. }
  37. return false;
  38. }
  39. }

iOS

参考 自定义 JSAPI > Plist 注册 > 注册 JSAPI 配置新的 JSAPI。

您需要完成以下几步来扩展 API:

  1. 开发者实现 getAuthCode 对应的 JSAPI 实现类 JsApiHandlerSample
  2. 出参处理:客户端返回给小程序返回的结果中,nick 会被映射为 nickNameuserAvatar 会被映射为 avatar,其他无变化。
  3. 注册自定义 JSAPI。
  4. 当向小程序返回正确的值时,请调用回调函数中 callback,具体返回值字段参见 success 返回值
  5. 当出现错误,需向小程序返回错误的值时,需调用回调函数中 callback 返回失败结果。

自定义 JSAPI 代码示例(不包含注册):

  1. #import "JsApiHandlerSample.h"
  2. #import <UIKit/UIKit.h>
  3. @interface JsApiHandlerSample()<UIAlertViewDelegate>
  4. @property (nonatomic, strong) NSMutableDictionary *authUserInfo;
  5. @end
  6. @implementation JsApiHandlerSample
  7. - (void)handler:(NSDictionary *)data context:(PSDContext *)context callback:(PSDJsApiResponseCallbackBlock)callback
  8. {
  9. [super handler:data context:context callback:callback];
  10. UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"获取会员信息" message:@"允许获取会员信息吗?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
  11. [alertView show];
  12. if (self.authUserInfo && [self.authUserInfo isKindOfClass:[NSMutableDictionary class]]) {
  13. callback(self.authUserInfo);
  14. } else {
  15. callback(@{@"error": @(11), @"errorMessage":@"用户取消获取"});
  16. }
  17. }
  18. - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
  19. {
  20. if (0 == buttonIndex) {
  21. self.authUserInfo = [NSMutableDictionary dictionary];
  22. self.authUserInfo[@"nick"] = @"Test User";
  23. self.authUserInfo[@"userAvatar"] = @"https://userurl.img";
  24. } else {
  25. self.authUserInfo = nil;
  26. }
  27. }
  28. @end