使用第三方平台账号登录

更新时间:2023-04-17 09:04:17下载pdf

前提条件

从第三方平台登录前,您需要在 涂鸦 IoT 开发平台第三方接入 页面配置对应的 AppID 和 AppSecret。

使用第三方平台账号登录

然后,您的 App 需要按照各平台要求进行开发,获取到对应的 code 之后,调用智能生活 App SDK 对应的登录接口。

微信登录

接口说明

ThingHomeSdk.getUserInstance().loginByWechat(String countryCode, String code, ILoginCallback callback);

参数说明

参数 说明
countryCode 国家码,例如 86
code 微信授权登录获取的 code
callback 回调

建议微信账号登录体系只允许中国大陆的账号,使用国家码 86。对于非中国大陆的账号(即国家码为 86 以外的账号),存在从中国大陆境外访问境内微信服务的可能性,从而可能引发跨境数据传输合规风险。作为数据控制者,您应知晓并承担潜在的跨境数据传输合规风险。

QQ 登录

接口说明

ThingHomeSdk.getUserInstance().loginByQQ(String countryCode, String userId, String accessToken, ILoginCallback callback);

参数说明

参数 说明
countryCode 国家码,例如 86
userId QQ 授权登录获取的 userId
accessToken QQ 授权登录获取的 accessToken
callback 回调

建议 QQ 账号登录体系只允许中国大陆的账号,使用国家码 86。对于非中国大陆的账号(即国家码为 86 以外的账号),存在从中国大陆境外访问境内 QQ 服务的可能性,从而可能引发跨境数据传输合规风险。作为数据控制者,您应知晓并承担潜在的跨境数据传输合规风险。

Facebook 登录

接口说明

ThingHomeSdk.getUserInstance().loginByFacebook(String phoneCode, String token, ILoginCallback callback);

参数说明

参数 说明
phoneCode 手机区号,例如 86
token Facebook 授权登录获取的 token

OAuth2 登录

OAuth(开放授权)是一个开放标准,允许用户授权移动应用访问存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给移动应用或分享他们数据的所有内容。

接口说明

OAuth2 的接口是一个通用的登录接口,可以根据传参来确认正在使用 OAuth2 的类型。

void thirdLogin(String countryCode, String accessToken, String type, String extraInfo, ILoginCallback callback)

参数说明

参数 说明
countryCode 国家码,例如 86
accessToken 授权登录的 Token
type OAuth2 接口调用的类型,例如苹果登录用 ap 表示,Google 登录用 gg 表示
extraInfo 额外的参数
callback 回调

示例代码

ThingHomeSdk.getUserInstance().thirdLogin("your_country_code","auth2_token","auth2_type","{"info_key":"info_value"}", new ILoginCallback() {
    @Override
    public void onSuccess(User user) {

    }
    @Override
    public void onError(String code, String error) {

    }
});

Google 登录

鉴于谷歌在全球网络服务的部署情况,建议中国大陆地区用户避免使用谷歌登录。

接口说明

OAuth2 接口支持三方登录,授权成功后通过 OAuth2 的接口传入 Token 和 extraInfo 等信息,可以实现 Google 登录。

参数说明

参数 说明
countryNumberCode 国家码,例如 86
accessToken Google 授信的 idToken
type OAuth2 接口调用的类型,取值为 gg
extraInfo {“pubVersion”: 1}
callback 回调

示例代码

ThingHomeSdk.getUserInstance().thirdLogin(countryNumberCode,token,"gg","{\"pubVersion\":1}", new ILoginCallback() {
    @Override
    public void onSuccess(User user) {

    }
    @Override
    public void onError(String code, String error) {

    }
});