文档管理中心
您当前浏览的HarmonyOS 5.0.0(API 12)文档归档不再维护,推荐您使用最新版本。详细请参考文档维护策略变更
API参考应用服务Account Kit(华为账号服务)REST API获取用户信息其他场景获取用户信息

其他场景获取用户信息

功能介绍

非一键登录场景下,应用服务器向华为账号服务器调用该接口获取华为账号用户昵称、头像、手机号码等信息。

场景描述

非一键登录场景下,应用已经通过授权码获取到Access Token,并且已申请账号开放信息对应权限后,应用获取账号用户昵称、头像、手机号码等信息。

使用约束

不涉及。

接口原型

承载协议

HTTPS POST

接口方向

开发者服务器->华为账号服务器

接口URL

https://account.cloud.huawei.com/rest.php?nsp_svc=GOpen.User.getInfo

数据格式

请求消息:Content-Type: application/x-www-form-urlencoded

响应消息:Content-Type: application/json;charset=UTF-8

请求参数

Request Header

展开

参数

是否必选

参数类型

描述

Content-Type

String

取值为:application/x-www-form-urlencoded。

Request Body

展开

参数

是否必选

参数类型

描述

access_token

String

通过获取用户级凭证获取的Access Token。

getNickName

int

控制昵称、匿名化账号的返回顺序。

  • 0:返回匿名化账号,没有匿名化账号时返回昵称(默认);
  • 1:返回昵称,没有昵称时返回匿名化账号。

请求示例

请通过POST方式调用,示例如下:

收起
自动换行
深色代码主题
复制
  1. POST /rest.php?nsp_svc=GOpen.User.getInfo HTTP/1.1
  2. Host: account.cloud.huawei.com
  3. Content-Type: application/x-www-form-urlencoded
  4. access_token=
    <access_token>
    &getNickName=0

响应参数

Response Header

展开

参数

是否必选

参数类型

描述

Content-Type

String

取值为:application/json;charset=UTF-8。

Response Body

调用成功时,响应消息返回如下:

展开

参数

是否必选

参数类型

描述

openID

String

用户OpenID。具体格式要求请参考OpenID和UnionID的格式说明

unionID

String

用户UnionID。具体格式要求请参考OpenID和UnionID的格式说明

displayName

String

  • getNickName为0或不传时,返回匿名化账号,没有匿名化账号时返回昵称。
  • getNickName为1时,返回昵称,没有昵称时返回匿名化账号。

displayNameFlag

int

返回的昵称类型 。

  • 0:昵称。
  • 1:匿名账号。

headPictureURL

String

头像。

mobileNumber

String

通过快速验证手机号功能获取到的手机号(华为账号绑定号码或用户选择的其他手机号),详见获取手机号

email

String

用户邮箱。

purePhoneNumber

String

不带国家码的手机号,此处为mobileNumber去除国际冠码与国际电话区号的形式

phoneCountryCode

String

purePhoneNumber的国际冠码(00)+国际电话区号

说明

如字段无特殊说明,华为账号服务器返回的手机号码格式如下:

  • 当账号注册地为中国境内(不包含中国香港、中国澳门、中国台湾)且绑定手机号为中国境内(不包含中国香港、中国澳门、中国台湾)手机号码时,省略国际冠码与国际电话区号,直接返回手机号码,如: 11136000008。
  • 其它情况则遵循格式:国际冠码(统一使用00) + 国际电话区号 + 手机号码,如:0085261234567 (中国香港)、 0079871234560 (俄罗斯)。

调用失败时,响应消息返回如下:

展开

参数

参数类型

描述

error

String

错误描述信息,错误码在HTTP响应头中的NSP_STATUS字段返回,详见本章节错误码

响应示例

请求成功时

收起
自动换行
深色代码主题
复制
  1. HTTP/1.1 200 OK
  2. Content-Type: application/json;charset=UTF-8
  3. {
  4. "displayName": "182******74",
  5. "displayNameFlag": 1,
  6. "openID": "MDFAMTAxMDA1MTg1QGFlMzM0OWIyOGY0*****MDRiaNTI5ODAxYTA3MDh*****A4ZTZmNTA2ZTE4ZT*****lmNGVmN2E1ZjY1OTg4NWRiaN2QxMzQy*****TU0YWQ3",
  7. "unionID": "MDF9pBd6xxxxA8iaG4ZNPTw*****3fyXzG9WgUcmY8XibBvQ",
  8. "headPictureURL": "https://upfile-*****.jpg"
  9. }

请求失败时

收起
自动换行
深色代码主题
复制
  1. HTTP/1.1 200 OK
  2. Content-Type: application/json;charset=UTF-8
  3. NSP_STATUS: 6
  4. {
  5. "error": "session timeout"
  6. }

调用示例

Java代码示例如下,运行前需要进行调用示例环境配置

收起
自动换行
深色代码主题
复制
  1. import org.apache.http.NameValuePair;
  2. import org.apache.http.client.entity.UrlEncodedFormEntity;
  3. import org.apache.http.client.methods.HttpPost;
  4. import org.apache.http.message.BasicNameValuePair;
  5. import org.huawei.uniaccount.util.CallUtils;
  6. import java.io.IOException;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. import java.util.Map;
  10. public class GetInfoDemo {
  11. public static void main(String[] args) throws IOException {
  12. // 获取用户信息接口URL
  13. String url = "https://account.cloud.huawei.com/rest.php?nsp_svc=GOpen.User.getInfo";
  14. // 替换为您实际的获取到的Access Token
  15. String access_token = "
    <Access Token>
    ";
  16. Map<String, Object> info = getInfo(url, access_token);
  17. // 解析获取响应参数列表,例:解析获取openID
  18. String openID = (String) info.get("openID");
  19. }
  20. private static Map<String, Object> getInfo(String url, String access_token) throws IOException {
  21. HttpPost httpPost = new HttpPost(url);
  22. List<NameValuePair> request = new ArrayList<>();
  23. request.add(new BasicNameValuePair("access_token", access_token));
  24. httpPost.setEntity(new UrlEncodedFormEntity(request));
  25. // 使用默认异常处理逻辑,自定义异常处理请使用api CallUtils#remoteCall(HttpUriRequest, BiFunction<CloseableHttpResponse,String,E>)。
  26. return CallUtils.toJsonObject(CallUtils.remoteCall(httpPost));
  27. }
  28. }

错误码

展开

HTTP响应码

描述

200

仅表示本次调用成功,实际业务处理结果需要通过Response Headers中的NSP_STATUS进行判断。

展开

NSP_STATUS

描述

解决方法

6

access_token无效或已过期。

请重新获取新的access_token。

403

访问无权限。

请前往开发者联盟为应用申请开放权限,详见配置scope权限

500

接口内部错误。

根据返回的错误描述进行处理,若无法解决,请通过在线提单提交问题。

Postman调试

您可以使用Postman在线调试此接口。

在 API参考 中进行搜索
请输入您想要搜索的关键词