开发者社区 问答 正文

钉钉怎么通过接口获取应用授权列表和授权范围?

钉钉怎么通过接口获取应用授权列表和授权范围?

展开
收起
三分钟热度的鱼 2023-08-02 13:30:35 327 分享 版权
2 条回答
写回答
取消 提交回答
  • 接入代码示例:

    // 同时兼容PC和移动端的情况
    import { openTryoutSku } from 'dingtalk-design-libs';
    
    // 开发者自行判断调用这个方法的时机
    openTryoutSku({
      // corpId可以从应用首页的url上获取到
      corpId: '',
      // 应用的appId
      appId: '',
     // 从应用首页的url上获取到,url上参数名为 purchaseToken。
      // purchaseToken如何配置参照下文”配置入口地址“章节。
     token: '',
     miniAppId: '', // 如果是三方小程序应用,需要设置一下自身的miniAppId。H5微应用可以不设置这个参数
    }).then((res) => {
      const {
        // action的值为:
      // 'ok',用户执行了开通动作,或将自己加入了已开通的应用的可见范围内
        // 'cancel', 用户点击了取消按钮
        // 'unknown',用户点击空白区域关闭了弹窗,此时可以跟cancel采取同样的处理逻辑
        action,
      // 开通了应用的组织的corpId。因为个人开通可能会用钉钉的隐藏组织,所以开通应用的组织的corpId以这里返回的为准。
      corpId,
      } = res;
     // action不是ok的情况下,可以不采取任何动作
    }).catch(() => {
      // 钉钉侧出现了技术异常,比如打开弹窗失败等,出现概率非常低
    });
    

    image.png

    示例pc如何在工作台打开测试页面:

    dingtalk://dingtalkclient/page/link?url=https%3A%2F%2Fabc.com%2Ftest.html%3FcorpId%3Ddingf0f110ce4fd10fb7ee0f45d8e4f7c288%26ddtab%
    
    2023-08-04 01:42:34
    赞同 展开评论
  • 北京阿里云ACE会长

    钉钉通过开发者平台提供了应用授权相关的接口,主要有:

    获取应用授权列表:
    Copy
    https://oapi.dingtalk.com/user/list_auth_app
    用法:调用此接口,可以获取当前用户授权的所有应用列表。

    响应结果包含:

    appId:应用编号
    appName:应用名称
    nickName:授权用户的昵称
    authType:授权类型
    authTime:授权时间
    授权应用:
    Copy
    https://oapi.dingtalk.com/topapi/app/auth
    用法:调用此接口,将应用授权给指定的用户或用户组。

    去除应用授权:
    basic
    Copy
    https://oapi.dingtalk.com/topapi/app/remove_auth
    用法:调用此接口,将指定的用户或用户组的应用授权撤销。

    获取授权范围:
    通过获取应用授权列表接口,可以获取 authType(授权类型)字段。

    例如:

    read:只读授权
    all:全权限授权
    custom:自定义授权
    对于自定义授权,还可以调用解密接口,获取具体的授权范围。

    如获取用户信息的授权范围为:

    json
    Copy
    {
    "user_info": {
    "detail_info": true,
    "base_info": true
    }
    }
    希望以上接口和示例能够帮助到你。如果还有其他关于钉钉应用授权的问题,欢迎继续提问。

    2023-08-02 19:41:54
    赞同 展开评论