Serverless 云应用访问钉钉开放平台 | 学习笔记

简介: 简介:快速学习Serverless 云应用访问钉钉开放平台

开发者学堂课程【钉钉应用云开发实战营:Serverless 云应用访问钉钉开放平台】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/909/detail/14403


Serverless 云应用访问钉钉开放平台

目录

1.如何访问开放平台

2.如何调用服务端 API

3.服务端 SDK 下载


一. 如何访问开放平台

首先创建钉钉会议室预定。

image.png

强调组织必须选为演示团队。

image.png

点击会议室预定

image.png

image.png

然后进行配置

进入应用开发:

image.png一个云应用,部署在云端

钉钉开放平台处于钉钉开放主页状态。在自己的应用访问钉钉的开发平台。

这样网络应该相通。则部署在阿里云上的云应用。网络环境需要有出口网关。

钉钉开放平台本不属于公网状态。则需要有一个先前的条件。部署此应用需要访问公网的能力。访问公网的能力,目前的函数计算。会有一个孤网状态。去访问公网的能力。

例如服务型的应用。

image.png

通过 SAE 部署:

image.png运输于用户专属网内部专有网络,没有访问公网的能力。

如果访问自己的数据库,在 vpc 内部买的 RPS ,访问自己公网上的数据库。

Java 代码介绍

包括服务层,控制层等,

前端代码处。

这是一个编译出来的。它的原代码为 project

下载出来,修订前端代码

编译出来的代码

现在进行部署

操作进议:A 网关分组超过限额。

需安释故 api 分组出来。有3种解

方案:

1、您可以停止未使用的应用;

2、您可以移步

https: //rosnext.console.aliyun.com/cn-shanghai/stacks 把废弃的名称删除。

3、或者移步到

https://apigateway.consolewaliyun.com/#/ cn-shanghai/groups/listH除过期的 api 分组;

4、请确保平台吊顶选择了正确的组织!

切换团队进行:再次部署操作!

[2021-04-2819:54:28]应用:会议宝预定

TEST环境「基础服务准备任务]资源栈没有变化,无需重新部署

[2021-34-28 19:54:19]应用:会议室预定

[基础服务沮备任务] ROS 偏差检测完或!

[2821-84-2819:54:23]应用:会谈室预定

[基础服务准备任务]执行成功!

[2021-84-28 19:54:24]应用:会议室预定

开始执行[ API 网关编排任务]

[2221-04-28 19:54;24]应用:会议空预定

[ API 网关编排任务]开始 ROS 梓差检测..-

[2021-04-28 19:54;24]应用:会议室预定

[ API 网关编排任务】 Detect stack drift when it is in (CREATE。FATLED) is not supported .外部系统错误玛

:NotSupported 外部系统错误消息:Detect stack drift when it is in (CREATE,FAILED) is not supported.,将忽略该错误!

[2021-04-28 19:54:25]应用:会议室预定 

将删除资源栈: wbgw_2021042800885218 ..-

[2821-54-2819:54:29]应用:会议室预定

资源楼: wbgw_2心2164288680521E 剧除成功!

[2021-04-2819:54:33]应用:会议室预定旳开始执行[ VPC 网络煌排任务]

[2021-84-26 19:54:33]应用:会议室预定

[ API 网关编排任务1执行配功!

[2021-34-2日19:54:33]应用:会议室预定

初始化 APIGateway 或功。

二级域名为 http://843459c1e1d04c9785a5e239880a88ec-

cn-shanghai.alicloudapi.co

[2021-04-28 19:54:33]应用:会议室预定

开始执行[ VPC 网络编排任务]

再次进行覆盖!

[2021- 04-28 19:55:421 应用:会议室预定

城名:

https ://test1yj fbm809 17syo0o03h. workbenchapi.com绑定到 API 网关 =级域名

http://843459c1e1d04c9785a5e239880a88ec-cn-shanghai.alicloudapi.com 成功!

请使用

https://test 1yj fbm80917syqoo83h.workbenchapi.com 进行测试验证(还需要

进行 QNAME 解析, 且域名生效有延迟,如果无法访问请耐心等待)

[2021-04- -2日19:55:42] 应用:会议室预定

TEST 环境的域名 test1yj fbm8B0917syqo o03h . workbenchapl.com CNAME 到 API 网关的二级域名

843459c1e1d04c9785a 5e239880a8ec-cn-shanghai. alicloudapi.com 尚未生效, 请稍等片刻!当命令行工具 dig/ns lookup/ping 等指令发现正确的解析记录后, 即可直接通过

城名正常访问该应用了。

[2021-84-28 19:55:42] 应用: 会议室预定云开发应用[ TEST ]环境部属成功! 

继续观看页面:进行访问。

image.png

Api 需要加白名单,服务端公网在此配置。

函数计算没有固定 IP 地址,拥有访问公网能力。

image.png进入超级管理员:

image.png

进入——跳转页面——读取参数——授权——启动应用信息

response = client. execute( request, accesstoken)

accesstoken :具有时效性,防止他人任意窃取。通过调用钉钉公共 api 获取。 

//从持久化存储中读取

string accessToken = getF romCache ( admin ? "adminToken" :” access Token", "access_ token"):

if (accessToken != null) {

return ServiceResult ,

success( accessToken);

DefaultDingTalkClient cllent = new Def aultDingTalkClient (admin ? UrlConstant.URl ADMIN GET TOKEN : URL GET TOKEN):

if (adnin) (

apissoGettokenRequest request = new 0apiSsoGet tokenRequest();

//企业Id

request . setCorpid(appConfig. getCorpId());

//秘钢ssosecret

//这里必须填写专属的SS0sec ret.

request. setCorpsecret (appConfig. getSsoSeret());

request. sethttpMethod("GET");

0apiSsoGettokenResponse response = null:

try {

response = client . execute( request);

}  catch (AplException e) {

Log . error("getAccessToken failed", e);

return ServiceResult. failure(e . getErrCode(), e. getErrMsg()

每种方法请求参数是不一样的。

通过授权码换取用户基本信息。可以知道用户身份。应用随而建立登陆台。根据用户操作进行保存。


二.如何调用服务端 API

首先开发部署,新建应用配置。如下图:

开始部署..- 

发送部吾任务完成...

[2021-04-28 19:48:;23]应用:会议室预定―云应用[ TEST ]环境开始部署

[2021-04-28 19:48:30]应用:会议预室定您可以在 Flow 查看详细日志 

https://flow.aliyun . com/pipelines/1312632/current?channel=wo rkbench

[2021-34-2B 19:48:23]应用:会议室预定   开始执行[项目构建任务]

[2021-04-2B 19:48:34]应用:会议室预定   java镜像构建-申请运行环境(日5}执行成功

[2021-04-2B 19:48:38]应用:会议室预定   java镜像构建-克隆代码(2s)执行成功

[2021-04-2B 19:48:38]应用:会议室预定   java镜像构建-清理工作区[2s)执行成功

……… 

可能出现以下问题:

操作运议: API 网关分组超过限额,需宝释故 api 分组出来。有3种解决方案:

1、您可以停止未选用的应用;

2.您可以移步

https: / /rosnext.console. aliyun.com/cn-shanghai/stacks 把废弃的名称形如 wbd *******************的资源线删除;

3. 或者移步到

https://apigateway.con5ole,aliyun.com/#/ cn-shanghai/groups/list删除过期的 api 分组;

4、请确保平台吊顶选择了正确的组织!


三.如何调用服务端 API

请求方式:接口使用的 HTTP 方法和请求协议。所有接口都使用HTTPS协议。

请求地址∶接口的请求地址。钉钉服务端接口的访问域名为―https: /oapi.dingtalk.com。请求参数使用"&"分隔。请求地址中的大写单词是需要替换的变量值。

请求包体/参数说明︰提供请求参数示例及说明,参数说明包括字段含义、取值范围,开发者在设计数据结构时,应参考该定义范围。返回结果/参数说明:提供返回参数示例及说明。

注意:

所有接口在调用失败时都会返回 errcode 和 errmsg 。开发奢可根据 errcode 和 errmsg 排查问题。

请不要仅根据 errmsg 判断调用是否成功。当请求返回结果中返回了 errcode 且不为0时可判断为请求失败。errmsg 是对 errcode 的说明,供开发者参考排查问题。

我们对接口的返回字段做了简化处理,如果字段的值为空或者 null,将不返回该字段。

接口调用流程

如下图所示,在调用钉钉服务媚接口前,您需要完成以下准备工作:

1.添加接口调用权限。应用创建后默认只开放登录和消息通知接口的调用权限,您需要根据开发需要,添加对应的接口使用权限。详细

信息请参考添加接口调用权限。

2.获取应用的 access_foken 。access_token 相当于是身份凭证。调用接口时,通过 access_token 来鉴权调用者身份。

企业内部应用请参考获取 access_token

第三方企业应用请参考获取第三方应用凭证

image.png

调用方式

钉钉开放平台提供了 API Explorer 和 SDK 方便开发者调用服务端APl。

●API Explorer: .

API Explorer是可视化在线 API 调用工具,可实时查看 API 请求和返回结果

访问地址: https://open-dev.dingtalk .com/apiExploer#/?

devType=org&a pi= dingtalkoapigettoken.

●SDK:

钉钉开放平台提供了 Java. PHP. Python、 .NET SDK 供开发者使用。单击服务端SDK下载。


四.服务端 SDK 下载

SDK 请求示例

”下面是使用 SDK 调用 API 的请求示例:

●Java

DingTalkClient client = new DefaultDingTalkclient( "https://oapi. dingtalk. com/usex/get");

oapiUserGetRequegt req = new oaplUserGetRequest( ) ;

req. setUserid("userid1");

点击纠错

req. setHttpMethod( "GET");

oapluserGetResponse rsp = client .execute (reg,accessToken) ;

●PHP

include "TopSdk . php" ;

// DingTalkConstant: :$METHOD_ GET 要与下面调用接口ur1要求的保持一致

$c - new DingTalkClient (DingTa lkConstant : :$CALL_ TYPE_ OAPI, DingTalkConstant : : SMETHOD_ GET.

DingTalkConstant : :$F0RMAT_ JSON);

$req = new oapiUserGetRequest( );

$req- >setUserid ("userid1" );

$resp=$c->execute($req,$accesToken, " https:/ /oapi .dingtalk . com/user/get" );

var_ _dump (Sresp)

●Python .

import dingtalk .api

request = dingtalk. api. OapiGettokenRequest( "https://oapi.dingtalk .com/user/get")

request. userid- "userid1"

sresp- se->exeeute($req, saeeessToken, https:/ /oapi .dingtalk. con/user/get" );

var_ dimp($resp)

”Fythgr!

import dingtalk .api

点击纠错

request = dingtalk. api .

oapiGettokenRequest[ "httpst//oapi.dingtalk。com/umer/geL"I

request. userid= "user⊥d1,

response = requeat.getkesponse()

irint (respons6) 

●.NET

IDingTalkclient client = new Defaul tDingTalkc1 ient ( "https; //oapi .cdingtalk . com/user/get");

oapiuserGetRequeat req = nev oapiUaerGetRequest( );

reg.userid - "ueeridI";

Teq. SetattpMethod("GET");

oapiUaerGetReaponse rsp = client. Execute(reqr acceseToken)

请求示例说明:

1.定义 Client 对象,设置接口地址 UR 。一般情况, 无需拼接 URL 后面的参数,比如 access token ; 需要注意部分Post 接口,需要在 URi 后拼接除 acce5s_ 51oken 外的个别参数。

2:构造 Request 对象,接口对应的 requestx 对象,一般 规则是 Oapi+接口 Path 驼峰形式+Request ,如/user/get接口,请求对象是 QanillcorGerPecuact 。

3、调用 Request 的方法设置参数,注意参数 HttpMethod ,默认是 POST . 如果是 GET 类型接口,需要这样设置requests etHttpMethod!"GET").

4.调用 clienL.execute 执行,其中 asess stoken 同样可以使用 SOK 获取到。同时,/gettoken, /sns/gettoken, iservice/get suite. token 筹狱取 token 的接口在调用execute时。元需再传 token 参数。

5.执行后得到 Response 对象,是与 Request 对应的,然后可获取执行结果。

SDK 下载

环境依赖

●Java SDK 需要依赖 Java SE/EE 1.5及以上

●.NET SDK 需要依赖. NET Framework 2.0及以上(不支持 Windows Phone 平台)

下载地址:

●Java 版本:点击下载

●PHP 版本:点击下载

●Python 版本:点击下载

●Python3 版本: 点击下载

●.NET 版本:点击下载

●.NETCore版本: 点击下载

文档格式约定

每个接口文档会按照如下格式提供信息: .

请求方式: GET/POST (HTTPS}

请求地址:

https t//oapi . dingtalk . com/ gettoken?appkey-APP KEY6appsecret-APP SECRET

请求包体:

参数说明:

返回结果:

示例

●请求方式:接口使用的 HTTP 方法和请求协议。所有接口都使用 HTTPS 协议。

●请求地址:接口的请求地址。钉钉服务端接口的访问域名为 https ://0api . dingtalk.com 。请求参数使用“&”分隔。请求地址中的大写单词是需要替换的变量值。

●请求包体/参数说明:提供请求参数示例及说明,参数说明包括字段含义、取值范围,开发者在设计数据结构时,应参考该定义范围。

●返回结果/参数说明:提供返回参数示例及说明。

相关文章
|
7月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
781 30
|
8月前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
835 12
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
1390 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
1039 31
|
11月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
1332 0
|
8月前
|
人工智能 运维 安全
聚焦 AI 应用基础设施,云栖大会 Serverless AI 全回顾
2025 年 9 月 26 日,为期三天的云栖大会在杭州云栖小镇圆满闭幕。随着大模型技术的飞速发展,我们正从云原生时代迈向一个全新的 AI 原生应用时代。为了解决企业在 AI 应用落地中面临的高成本、高复杂度和高风险等核心挑战,阿里云基于函数计算 FC 发布一系列重磅服务。本文将对云栖大会期间 Serverless+AI 基础设施相关内容进行全面总结。
|
8月前
|
人工智能 Kubernetes 安全
重塑云上 AI 应用“运行时”,函数计算进化之路
回顾历史,电网的修建,深刻地改变了世界的经济地理和创新格局。今天,一个 AI 原生的云端运行时的进化,其意义也远不止于技术本身。这是一次设计哲学的升华:从“让应用适应平台”到“让平台主动理解和适应智能应用”的转变。当一个强大、易用、经济且安全的 AI 运行时成为像水电一样的基础设施时,它将极大地降低创新的门槛。一个独立的开发者、一个小型创业团队,将有能力去创造和部署世界级的 AI 应用。这才是技术平权的真谛,是激发全社会创新潜能的关键。
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
685 122
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
703 12

相关产品

  • 函数计算