更新时间:2024-03-27 15:09:00收藏我的文档设置返回文档公告:因平台业务调整,开放平台生活号相关文档后续将不再更新,生活号相关内容可查看 生活号 。开发者可以通过国际标准的oauth2.0授权机制,在用户授权的情况下,得到用于换取用户信息的令牌。 在拿到用户的授权令牌后,可以调用用户信息共享接口,获取用户的账户相关信息,如昵称、头像、性别、省份等,便于开发者实现针对特定人群的精准化营销; 也可以调用通讯录信息接口,得到基于用户手机通讯录的好友信息(仅限同时关注该生活号的好友),便于在生活号内让两位好友进行互动。 生活号提供获取用户信息相关接口如下:接口英文名接口中文名api文档alipay.user.info.share生活号授权获取用户信息alipay.open.public.follow.batchquery获取关注者列表接口生活号授权获取用户信息使用场景:用户在支付宝生活号中访问开发的的第三方网页,开发者可以通过网页授权机制,来获取用户的基本信息,以实现相应的业务逻辑; 网页授权采取标准的oauth 2.0授权体系。注意:申请获取用户信息功能时默认可获取的用户信息包含用户id、昵称、性别、省份、城市、用户头像、用户类型、用户状态、是否实名认证、是否是学生等信息。 授权流程 如上图所示,对于开发者而言,需要完成以下工作:1按照规则拼接授权页面的链接,并且引导用户跳转至该链接;2用户在授权页面上确认授权后,将跳转到开发者指定的回调页,并且带上auth_code;3开发者通过auth_code换取access_token及用户的userid;4如果需要除userid以外的其他信息,则使用access_token调用用户信息共享接口获取。 以下将对整个流程做详细介绍:第一步:url拼接与scope详解url拼接规则:https://openauth.alipay.com/oauth2/publicappauthorize.htm?app_id=appid&scope=scope&redirect_uri=encoded_url 使用场景举例:开发者通过url拼接方案,构造授权页面,并且引导用户授权。url参数说明参数名是否必须描述app_id是开发者应用的app_idscope是接口权限值,目前只支持auth_user和auth_base两个值redirect_uri是回调页面,是 经过转义 的url链接(url必须以http或者https开头),比如:http://example.com在请求之前,开发者需要先到开发者中心对应应用内,配置授权回调地址。state否商户自定义参数,用户授权后,重定向到redirect_uri时会原样回传给商户。 为防止csrf攻击,建议开发者请求授权时传入state参数,该参数要做到既不可预测,又可以证明客户端和当前第三方网站的登录认证状态存在关联。关于redirect_uri的说明: 接口会校验授权链接中配置的redirect_uri与应用中配置的授权链接是否一致。详细说明: 如果开发者在应用中配置的授权链接是:https://auth.example.com/authcallback,则redirect-uri内容为https://auth.example.com/authcallback的encode形式https://auth.example.com/authcallback。授权回调地址对应的域名(auth.example.com)下的页面、、都可以进行oauth2.0授权。但与(auth.example.com)关联的二三级域名,如:、无法进行oauth2.0授权。关于scope的说明:●auth_base:以auth_base为scope发起的网页授权,是用来获取进入页面的用户的userid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(通常是业务页面)。●auth_user:以auth_user为scope发起的网页授权,是用来获取用户的基本信息的(比如头像、昵称等)。但这种授权需要用户手动同意,用户同意后,就可在授权后获取到该用户的基本信息。pc授权页面示例: h5授权页面示例: 注:h5授权页只能在支付宝客户端里使用,否则会报错,如下。 第二步:获取auth_code当用户授权成功后,会跳转至开发者定义的回调页面,支付宝会在回调页面请求中加入参数,包括auth_code、app_id、scope等,需要注意的是支付宝仅保证auth_code、app_id以及scope参数的有效性。支付宝请求开发者回调页面示例如下:第三步:使用auth_code换取接口access_token及用户userid接口名称:alipay.system.oauth.token换取授权访问令牌,开发者可通过获取到的auth_code换取access_token和用户userid。auth_code作为换取access_token的票据,每次用户授权完成,回调地址中的auth_code将不一样,auth_code只能使用一次,一天未被使用自动过期。接口请求示例请求参数说明参数参数名称类型(长度范围)参数说明是否可为空样例grant_type授权类型string值为authorization_code时,代表用code换取;值为refresh_token时,代表用refresh_token换取不可空authorization_codecode授权码string用户对应用授权后得到,即第二步中开发者获取到的auth_code值与refresh_token二选一4b203fe6c11548bcabd8da5bb087a83brefresh_token刷新令牌string刷新access_token时使用与code二选一201208134b203fe6c11548bcabd8da5bb087a83b同步响应结果示例同步响应参数说明参数参数名称类型(长度范围)参数说明是否可为空样例access_token交换令牌string用于获取用户信息不可空publicpba869cad0990e4e17a57ecf7c5469a4b2user_id用户的useridstring支付宝用户的唯一userid不可空2088411964574197alipay_user_id用户的open_id(已废弃,请勿使用)string已废弃,请勿使用不可空已废弃,请勿使用expires_in令牌有效期number交换令牌的有效期,单位秒不可空300re_expires_in刷新令牌有效期number刷新令牌有效期,单位秒不可空300refresh_token刷新令牌string通过该令牌可以刷新access_token不可空publicpb0ff17e364f0743c79b0b0d7f55e20bfc第四步:调用接口获取用户信息如果scope=auth_base,在第三步就可以获取到用户的userid,无需走第四步。如果scope=auth_user,才需要走第四步,通过access_token调用用户信息共享接口获取用户信息。 接口名称:alipay.user.info.share 使用场景举例:开发者可以使用该方案获取用户的userid、头像、昵称等基础信息。接口请求示例公共请求参数说明参数参数名称类型(长度范围)参数说明是否可为空样例auth_token授权令牌string通过auth_code获取的access_token不可空publicpb9ea460ff5b5c468c9ccf5e967dc34963同步响应结果示例同步响应参数说明参数参数名称类型(长度范围)参数说明是否可为空样例avatar用户头像string如果没有数据的时候不会返回该数据,请做好容错可空nick_name用户昵称string如果没有数据的时候不会返回该数据,请做好容错可空张三province省份string用户注册时填写的省份 如果没有数据的时候不会返回该数据,请做好容错可空浙江省city城市string用户注册时填写的城市, 如果没有数据的时候不会返回该数据,请做好容错可空杭州gender用户性别stringm为男性,f为女性, 如果没有数据的时候不会返回该数据,请做好容错可空muser_id当前用户的useridstring支付宝用户的userid不可空2088411964574197user_type用户类型string1代表公司账户2代表个人账户可空1user_status用户状态stringq代表快速注册用户 t代表已认证用户 b代表被冻结账户 w代表已注册,未激活的账户可空tis_certified是否通过实名认证t是通过 f是没有实名认证可空tis_student_certified是否是学生t是学生 f不是学生可空t