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 。请求参数使用“&”分隔。请求地址中的大写单词是需要替换的变量值。

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

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

相关文章
|
4天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用之在阿里云Serverless中函数计算FC nginx 部署上去之后放置静态页面如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
265 0
|
4天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
1063 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
4天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,在response.send()之后继续执行其它代码如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
181 0
|
4天前
|
运维 负载均衡 Java
Serverless 应用引擎产品使用之在阿里函数计算中,创建了个关于 stable diffusion 的函数服务,总是很卡如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
185 0
|
4天前
|
人工智能 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中使用自定义字体如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
165 0
|
4天前
|
弹性计算 运维 监控
Serverless 应用引擎产品使用之在阿里函数计算中,函数计算的的自定义域名的路由节约时间如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
169 0
|
4天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在使用阿里云函数计算部署网站时,网站打开不稳定如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
210 1
|
4天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中通过调用函数如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
307 10
|
4天前
|
缓存 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用签名认证调用HTTP触发器的步骤如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
301 7
|
4天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数计算中,设置单实例并发1如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
147 6
Serverless 应用引擎产品使用之在阿里函数计算中,设置单实例并发1如何解决

热门文章

最新文章

相关产品

  • 函数计算