鍵.png)
使用這些基本 REST API 最佳實踐構(gòu)建出色的 API
1. 登錄釘釘開發(fā)者后臺。說明只有管理員和子管理員可登錄開發(fā)者后臺。
2.在應(yīng)用開發(fā)頁面,選擇第三方個人應(yīng)用,然后單擊創(chuàng)建應(yīng)用。
3.填寫應(yīng)用的基本信息,然后單擊確定創(chuàng)建。
4.單擊憑證與基礎(chǔ)信息獲取應(yīng)用的AppId和AppSecret。
建議用戶信息保存在前端緩存中(dd.setStorage)或者cookie中,避免每次進入應(yīng)用都調(diào)用釘釘接口進行免登。
1.獲取小程序免登授權(quán)碼。
調(diào)用dd.getAuthCode接口獲取小程序免登授權(quán)碼。
免登是指用戶進入應(yīng)用后,無需輸入釘釘用戶名和密碼,應(yīng)用程序可自動獲取當(dāng)前用戶身份登錄系統(tǒng)的流程。企業(yè)應(yīng)用和個人應(yīng)用的免登授權(quán)碼均可通過該JSAPI獲取。
dd.getAuthCode({
success:function(res){
/*{
authCode: 'hYLK98jkf0m' //string authCode
}*/
},
fail:function(err){
}
});
返回說明:
參數(shù) | 說明 |
authCode | 授權(quán)碼。有效期5分鐘,且只能使用一次,使用后會失效。 |
2.獲取用戶詳情。通過sns/getuserinfo_bycode接口獲取用戶詳情信息,詳情請參考獲取用戶基本信息。
示例代碼
/**
* Quick-Start示例代碼
* 實現(xiàn)了最簡單的獲取個人身份驗證功能
*/
@RestController
public class IndexController {
private static final Logger bizLogger = LoggerFactory.getLogger(IndexController.class);
/**
* 歡迎頁面
*/
@RequestMapping(value = "/welcome", method = RequestMethod.GET)
public String welcome() {
return "welcome";
}
/**
* 釘釘用戶登錄,顯示當(dāng)前登錄用戶基本信息
* @param authCode 由E應(yīng)用前端JSAPI獲取到的臨時授權(quán)碼
*/
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public Object login(@RequestParam(value = "authCode") String authCode) {
Long start = System.currentTimeMillis();
ServiceResult serviceResult;
try {
DefaultDingTalkClient client = new DefaultDingTalkClient(URL_GET_USERINFO_BY_CODE);
OapiSnsGetuserinfoBycodeRequest req = new OapiSnsGetuserinfoBycodeRequest();
req.setTmpAuthCode(authCode);
OapiSnsGetuserinfoBycodeResponse response = client.execute(req,Constant.APP_ID,Constant.APP_SECRET);
serviceResult = ServiceResult.success(response.getUserInfo());
return serviceResult;
} catch (Exception e) {
bizLogger.error("loginFailed,authCode"+authCode,e);
serviceResult = ServiceResult.failure("-1",e.getMessage());
//返回結(jié)果
}
bizLogger.info("cost:"+(System.currentTimeMillis()-start));
return serviceResult;
}
}
開發(fā)者可通過消息高效觸達用戶,通知用戶當(dāng)前行為的結(jié)果及狀態(tài)等,同時可在消息中配置應(yīng)用內(nèi)跳轉(zhuǎn)頁面地址。當(dāng)用戶查看消息時,在消息卡片點擊“進入應(yīng)用查看”,進入開發(fā)者配置的應(yīng)用內(nèi)指定頁面;
1.開發(fā)者在用戶提交的form表單上聲明屬性report-submit="true"
。
說明該屬性需要在真機環(huán)境下生效。
<form onSubmit="formSubmit" report-submit="true">
<view class="section section_gap">
<view class="section__title">表單類型</view>
<input name="text" maxlength="10" placeholder="最大輸入長度10" />
</view>
<view class="btn-area">
<button formType="submit">推送消息</button>
</view>
</form>
2. 通過e.detail.formId
可以獲取推送消息臨時授權(quán)碼,在處理onsubmit事件時,需將臨時授權(quán)碼code一起存儲到服務(wù)器。
formSubmit(e){
// 通過e.detail.formId可以獲取到推送消息的臨時授權(quán)碼code
dd.httpRequest({
url: 'http://表單提交的服務(wù)端地址?code='+e.detail.formId,
method: 'POST',
headers:{"Content-Type":"application/json"},
data: {
},
dataType: 'json',
success: function(res) {
if(res.data.success){
dd.alert({content:'form表單提交處理成功'});
}else{
dd.alert({title:"form表單提交處理失敗",
content:JSON.stringify(res)});
}
},
fail: function(res) {
dd.alert({content: 'form表單提交處理'});
}
});
}
3. 當(dāng)業(yè)務(wù)場景需要給用戶推送消息時,服務(wù)端使用推送消息接口給用戶推送消息。
public static String sendMsg() throws RuntimeException {
try {
DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/sns/send_msg");
OapiSnsSendMsgRequest req = new OapiSnsSendMsgRequest();
req.setCode(code);
OapiSnsSendMsgRequest.Eapp eapp = new OapiSnsSendMsgRequest.Eapp();
eapp.setImg("@lALPBY0V5EuR4oDNAcrNAs4");
eapp.setContent("非常感謝您的反饋,非常感謝您的反饋。 \n\n"+System.currentTimeMillis());
eapp.setTitle("工單已回復(fù)");
eapp.setLink("eapp://page/index?param=aaa");
OapiSnsSendMsgRequest.Msg msg = new OapiSnsSendMsgRequest.Msg();
msg.setMsgtype("eapp");
msg.setEapp(eapp);
req.setMsg(msg);
OapiSnsSendMsgResponse response = client.execute(req,Constant.APP_ID,Constant.APP_SECRET)
} catch (ApiException e) {
bizLogger.error("sendMsg failed", e);
throw new RuntimeException();
}
}
Q:如何找到釘釘 API開放平臺
A:冪簡集成是國內(nèi)領(lǐng)先的API集成管理平臺,專注于為開發(fā)者提供全面、高效、易用的API集成解決方案。冪簡API平臺可以通過以下兩種方式找到所需API:通過關(guān)鍵詞搜索API(例如,輸入’釘釘 API開放平臺‘這類品類詞,更容易找到結(jié)果)、或者從API hub分類頁進入尋找。
Q:連接器適用于哪些場景?
A:企業(yè)開通使用釘釘?shù)墓俜綉?yīng)用、釘釘三方企業(yè)應(yīng)用(即釘釘應(yīng)用市場上的應(yīng)用)、同時企業(yè)已經(jīng)購買了自有系統(tǒng),連接器可以實現(xiàn)釘釘?shù)墓俜綉?yīng)用與釘釘三方企業(yè)應(yīng)用數(shù)據(jù)互通、釘釘官方應(yīng)用與企業(yè)自有系統(tǒng)數(shù)據(jù)互通、釘釘三方企業(yè)應(yīng)用與企業(yè)自有系統(tǒng)數(shù)據(jù)互通。
Q:連接器中包含三方連接器和企業(yè)自建連接器,應(yīng)該如何選擇?
A:
Q:企業(yè)客戶在哪里可以開通使用?
A:如果你購買的釘釘?shù)谌狡髽I(yè)應(yīng)用已經(jīng)創(chuàng)建了連接器應(yīng)用,可以在開發(fā)者后臺 > 連接平臺 > 自建連接流中直接開通授權(quán)適用。
Q:連接器和應(yīng)用開放的API是什么關(guān)系?
A:連接器本質(zhì)是一組API的集合。API通過聲明觸發(fā)事件和執(zhí)行動作配置成為了連接器。連接器包括觸發(fā)事件、執(zhí)行操作、數(shù)據(jù)模型。目前連接器主要支持不同應(yīng)用之間發(fā)送和接收數(shù)據(jù)。例如,當(dāng)在銷幫幫中新簽訂一個客戶訂單的時候,同步客戶數(shù)據(jù)、訂單數(shù)據(jù)到BOSS管賬中。
除了釘釘 API開放平臺,還有其他替代服務(wù)商也提供類似api服務(wù),例如:
yosmart API開放平臺、Homey API開放平臺、plumsail API開放平臺
更多競品可以在冪簡集成開放平臺中找到。
Q:釘釘 API開放平臺這個密鑰還適用于哪些api?
獲取用戶token、獲取第三方應(yīng)用授權(quán)企業(yè)的accessToken、獲取企業(yè)開通應(yīng)用后的授權(quán)信息
本文“釘釘API開放平臺訪問token分步指南”為開發(fā)者們提供了一份詳盡而實用的操作指南,旨在幫助他們輕松獲取并有效利用釘釘API開放平臺的強大功能。從注冊開發(fā)者賬號、完成身份認(rèn)證,到最終成功獲取訪問token,每一步操作都進行了詳細闡述,并配以清晰的步驟說明,確保開發(fā)者能夠順利完成整個流程。我們深知,獲取訪問token只是利用釘釘API的第一步。因此,在本文中,我們也特別強調(diào)了獲取token后應(yīng)進行集成測試和可用性驗證的重要性。這是確保API能夠順利集成到應(yīng)用中,并發(fā)揮最佳效果的關(guān)鍵環(huán)節(jié)。通過測試,開發(fā)者們可以及時發(fā)現(xiàn)并解決潛在的問題,為后續(xù)的開發(fā)工作奠定堅實的基礎(chǔ)。本文為開發(fā)者們搭建了一個便捷的橋梁,幫助他們成功接入釘釘API開放平臺,將這一強大的企業(yè)級服務(wù)轉(zhuǎn)化為實際應(yīng)用的價值。我們相信,通過本文的指導(dǎo),開發(fā)者們將能夠更加高效、便捷地利用釘釘API開放平臺的資源,推動項目的創(chuàng)新與發(fā)展,提升應(yīng)用的性能和用戶體驗,為企業(yè)數(shù)字化轉(zhuǎn)型注入新的活力。