概述

开放平台,Android应用接入指南

接入说明

1.接入应用访问协议

目前提供接入应用的启动方式有以下几种:

使用包名启动

直接配置包名即可。
op://包名?type=pkname
如:op://com.nd.hy.ele.startb?type=pkname

使用scheme方式启动(推荐使用)

scheme方式配置launch_url配置为:
op://scheme_url?type=scheme
如:op://example://com.nd.hy.ele.startb/ActivityDemo5?type=scheme

显式启动,启动app的指定页面。

显式配置launch_url配置为: op://包名?type=explicit&page=页面名
如:op://com.nd.hy.ele.startb?type=explicit&intent=com.nd.hy.ele.startb.MainActivity2

隐式启动,启动app的指定页面。

隐式配置launch_url配置为:
op://包名?type=implicit&intent=页面的AndroidManifest.xml中对应的action名
如:op://com.nd.hy.ele.startb?type=implicit&intent=android.intent.action.qidong3

备注:……

2.后台配置


完整配置说明,请参考:

在开放平台后台配置应用指南

3.单点登录支持

目前开放平台移动端提供临时会话票据ticket 给接入应用,完成单点登录。具体接入步骤:

  1. “开放平台”通过mac token获取到临时会话票据ticket
  2. 第三方应用接收云平台跳转第三方应用时URL传递的临时会话票据ticket
  3. 第三方应用通过ticket向IDP换取访问令牌access_token
  4. 第三方应用通过access_token请求资源API,如获取用户信息等

参考文档 :获取oauth的ticket相关文档

参数

  • 当启动应用launch_url 含有ticket=${user_ticket}占位时,表示需要获取ticket并将其传递到启动app。
  • 如何获ticket—调用{uc-gateway}/v1.1/get_ticket获取临时会话票据ticket(post 请求,参数为空,但是还是需要传递一个空的{},不然报错)。
  • 获取到ticket之后将标签通过Bundlec传递到启动的app。
    Bundle bundle = new Bundle();
    bundle.putString(ticket, "user_ticket");
    intent.putExtras(bundle);
  • app启动页面中判断bundle是否为空,同时读取bundle中是否带有ticket
    Bundle bundle=intent.getExtras();
    if(bundle!=null) {
        String ticket = bundle.getString("ticket");
    }
  • 通过ticket去获取access_token。(通常建议是这个操作放在App云端服务器,由云端中转接口调用请求,因为应用的密钥client_secret和获取到的access_token为了安全都应保存在服务端)
    1、我们因为现在没有app服务端,就本地直接调用接口获取access_token。   
    2、首先向开放平台申请注册了app,获取client_id和client_secret     
      应用ID:d11bd323-3d76-47eb-968c-36851184372a
      密钥:acdb9f6339814436995d39babf873960  
    3、调用接口 {uc-gateway}/v1.1/oauth2/access_token通过ticket获取access_token    
    4、获取到了access_token之后就完成认证,同时也提供了刷新access_token接口。  
    5、后续可以通过access_token去获取用户信息。 {uc-gateway}/v1.1/oauth2/get_user_info获取用户基本信息

    参考DEMO

https://github.com/kinglong123/appStartup

参考链接

作者:wangtc  创建时间:2020-06-16 08:13
最后编辑:网教通  更新时间:2023-11-14 10:57