1. 程式人生 > >釘釘開放平臺“常見問題常見問題常見問題“

釘釘開放平臺“常見問題常見問題常見問題“

一、免登問題
1.如何在App及後臺獲取企業及使用者相關資訊
(1)微應用主頁支援使用$CORPID$模板引數表示corpid,使用者訪問微應用的時候釘釘將把$CORPID$替換成使用者所屬企業的corpid,例如http://www.dingtalk.com/index?corpid=$CORPID$
(2)獲取使用者資訊需要通過免登服務,詳情http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.Bz74m4#免登服務

2.釘釘微應用OAuth2授權開啟一個應用時提示對不起您無許可權檢視該頁面
可能的原因:
(1)如果其他應用正常,或者企業其他人開啟應用沒問題,可能是快取問題引起,請清除下快取
(2)引數redirect_uri的值沒有做url編碼
(3)redirect_uri的域名和微應用的域名不一致


3.免登Code的時效性
免登授權碼是一次性的,團隊(未認證的企業)失效時間五分鐘

二、JSAPI問題


1.jsapi許可權校驗失敗,錯誤碼080003是什麼原因
  請先按照文件,先檢查引數agentid傳值是否正確,agentId檢視方式:
(1)如果是isv應用,需要通過http://open.dingtalk.com/doc/#10-獲取企業的應用資訊
(2)企業自建應用,通過oa後臺檢視http://open.dingtalk.com/doc/#開發環境準備

2.jsapi許可權校驗時返回{message:"許可權校驗失敗",errorcode:3}
(1)首先檢查用來生成簽名(signature)的jsapi_ticket是否過期(jsapi_ticket有效期為7200秒,而且當你請求了新的ticket之後,舊的ticket就失效了)
(2)其次檢查生成簽名的Url引數,與呼叫dd.config 所在的url是否一致
生成簽名用的url需要去除hash部分,e.g. 如果當前頁面url是
http://abc.def/ghi/jkl?m=123&n=456#opq
,則用於生成簽名的url是http://abc.def/ghi/jkl?m=123&n=456,可以使用除錯工具來生成jsapi_ticket和signature,並和你實際使用的進行對比
(3)提示許可權校驗失敗,errorcode:3,錯誤碼52019,請檢查corpid是否正確

3.使用JSAPI返回簽名或者Ticket獲取失敗
JSAPI返回失敗主要有兩種錯誤
(1)[錯誤碼:52011] [jsapi ticket 讀取失敗]
  a.確認agentId引數正確傳入 
  b.確認以傳入agentId對應的企業身份獲取過jsapi_ticket,也就是呼叫過get_jsapi_ticket方法
  c.確認agentId對應的企業身份獲取的jsapi_ticket沒有過期.即在兩個小時的有效期之內
(2)[錯誤碼:52013][簽名校驗失敗]
  a.確認agentId引數正確傳入 
  b.oa後臺設定uri和許可權校驗uri不一致(去掉hash部分)
  c.確認獲得的jsapi_ticket為最新的,沒有其他服務同時呼叫get_jsapi_ticket方法,導致生成簽名的jsapi_ticket過期
  d.確認生成jsapi簽名正確,可以使用debug工具進行除錯
https://debug.dingtalk.com/


4.ios 單頁面應用更改url#後面的引數(如:localhost:8100/#/test1 變成 localhost:8100/#/test2),呼叫jsapi無效
ios單頁面應用更改url引數,導致呼叫jsapi無效問題,將在2.7版本隨新版本釋出;
若是老版本(2.7以前版本),需要開啟頁面時重新授權,呼叫jspai即可正常

5.jspai 呼叫返回errCode7 錯誤原因
(1)請檢視在dd.config的jsApiList中,是否已配置要使用的jsapi,未配置的話會報錯
(2)ios 單頁面應用提示 errCode7 Jsapi Should NOT CallselectorString
同問題5,單頁面應用更改url引數,導致呼叫jsapi無效,老版本(2.7以前版本)需要重新授權,呼叫jsapi正常
(3)requestJsApis() not invoked,errorCode:7
dd.ready一定要在dd.config之後執行 

6.如何獲取JSAPI許可權(需再詳細些)
可以參照http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.XpRuM1#客戶端開發文件,要使用的jsapi必須進行許可權驗證配置,在dd.config中進行配置,可參照http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.XpRuM1#許可權驗證配置-beta


7.工具欄顏色如何設定
在頁面需要引入js檔案的前提下,通過url引數設定導航欄顏色,引數名為dd_nav_bgcolor
比如微應用當前頁面連結為:https://abc.xyz/,要設定的顏色為FF112233(前兩位預設FF,後面6位112233是對應的色值),可設定頁面url為:https://abc.xyz/?dd_nav_bgcolor=FF112233

8.device.geolocation.get 提示unauthorized  errcode 4
使用者裝置禁用了手機的定位功能

9. 釘釘傳送會話訊息,cid如何獲取
使用場景示例:使用者在微應用中拉起本地聊天視窗列表(通過呼叫jsapi-獲取會話資訊),選擇某一個聊天視窗,微應用將收到釘釘返回的cid,通過這個cid會送會話訊息。
a.前提條件:jsapi可使用,即已經配置到dd.config,且通過jsapi的許可權校驗
b.通過jsapi獲取會話cid,詳見http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.FDtb0f#獲取會話資訊


10.errorMessage:”err msg redirect_uri domain is not secure domain”,”errorCode”:”3”
在oa後臺設定微應用首頁地址(域名設定為可信域名,即可安全訪問授權)


11.讀取nfc晶片介面無法使用
[font=微軟雅黑, 'Microsoft Yahei', 'Hiragino Sans GB', tahoma, arial, 宋體]目前nfc晶片介面只支援android(文件中已註明,請檢視文件)


三、服務端API
1.呼叫管理通訊錄介面返回43004,無效的HTTP HEADER Content-Type如何解決
管理通訊錄的部分介面採用了POST請求,請求體使用JSON格式,請在HTTP請求頭中設定Content-Type:application/json

2.上傳檔案不成功
使用multipart/form-data請求上傳檔案,需要附加檔案標示資訊,引數名為media;java示例程式碼為
HttpEntity requestEntity =MultipartEntityBuilder.create().addPart("media", new FileBody(file, ContentType.APPLICATION_OCTET_STREAM, file.getName())).build();

3.新建部門和員工資訊為中文時,建立不成功
請檢查編碼格式,確認是utf-8編碼

4.註冊事件回撥介面,每個corpid只能註冊一個回撥url嗎
一個企業的一個套件,只能註冊一個回撥url

5.返回系統繁忙錯誤
(1)除錯呼叫介面過程中出現,請先確保是否是JSON格式錯誤,比如POST時有的JSON裡缺少了這種括號[ ]
(2)請檢查url是否正確,如免登介面,通過code換取使用者資訊,/getuserinfo,實際應為/user/getuserinfo
(3)呼叫其他介面也返回系統繁忙,請您立刻在答疑群或論壇等反饋給釘釘人員

四、ISV接入問題
1.開發者平臺建立套件校驗url有效性問題 
如果返回字串不匹配,提示錯誤程式碼71009,可以通過以下常見問題確認具體原因:
a.可以通過將加密資料在本地解密下,看解密後的資料是否正確
b.檢視是否是各欄位名字錯誤,如timeStamp,卻寫成了timestamp

2.ISV接入回撥介面沒有suiteticket推送
註冊套件之後,釘釘伺服器會向填寫的回撥介面推送suite_ticket;接收到推送之後需要返回加密後的字串“success”,如果不返回或返回錯誤,釘釘伺服器將連續推送,直到推送次數超過100次,就不再推送;
此時需要進入開發者後臺,進入套件管理頁面,點選『重新推送』按鈕,即可重新推送

3.回撥地址接收釘釘伺服器推送下來的資料,遇到計算解密文字錯誤
請檢視加解密庫和demo下載第二個步驟,見http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.FDtb0f#加解密庫和demo下載

4.模擬測試企業發起授權所有套件,收不到臨時授權碼,而是change_auth
在開發者平臺,目前授權行為只能發起一次,如已經收到臨時授權碼,模擬測試企業發起授權行為,收到change_auth事件;
測試企業解授權功能近期會上線,請關注文件及論壇更新

5.不存在的臨時授權碼
臨時授權碼只能使用一次,使用後再次使用會提示“不存在的臨時授權碼”

6. isv開發中,如果permanentCode沒有存下來,如何獲取到
目前沒有辦法獲取,可以通過解除授權再次授權重新獲取,解除授權功能暫時未開放,請在文件及論壇關注開放時間

7. 微應用效能測試提供的測試號碼加不進去
微應用效能測試提供的3個測試號碼,使用釘釘開放平臺通訊錄介面新增的話,有最多加入5個非認證企業限制;建議通過釘釘管理後臺(https://oa.dingtalk.com/#/login)的通訊錄進行新增

8.微應用效能測試報告中的影象中,顯示無權檢視該頁面可能原因
  請將在測試的h5地址直接在釘釘會話中開啟,如找一個聊天會話,把要測試的h5地址直接貼在會話中,並點選開啟  
  a.如果開啟提示無權檢視該頁面,則是h5地址問題;
  b.如果開啟正常,請聯絡釘釘值班同學反饋;

10.IP白名單問題,返回errcode":60020",訪問ip不在白名單之中
呼叫釘釘API的機器需要配置在開發者平臺中配置白名單

11.如何解除開發者平臺的釘釘賬號繫結
暫未提供開發者平臺、雲市場與釘釘賬號解綁功能,請關注官方文件及論壇,若提供會同步更新

12.第三方ISV的套件開發完,如何與釘釘接入合作,讓其他企業授權使用套件
ISV開發完成套件後,需要對微應用進行效能評測等(http://open.dingtalk.com/doc/index.html?spm=a3140.7785475.0.0.rscFVO#微應用效能評測),以及在釘釘應用市場進行上架後,才可被其他企業使用者搜尋到,並進行購買授權等操作;
可關注文件對應用市場內容的更新,可傳送郵件至郵件組[email protected]進行諮詢

13.isv如何獲取企業中用的mobile和email
如果在開發者後臺勾選了郵箱欄位,則可以獲取使用者的email;mobile暫不提供 

14.isv demo中返回建立套件時返回解密文字或corpid或者suiteKey不匹配
(1)在 ENV檔案中
[font='Helvetica Neue', Helvetica, Arial, sans-serif]public static final String CREATE_SUITE_KEY = "suite4xxxxxxxxxxxxxxx";//首次建立套件校驗url時使用;
public static final String SUITE_KEY = "";//已有套件時使用
(2)IsvReceiveServlet中
dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env.SUITE_KEY);
第三個引數使用,如果首次建立校驗url使用 Env.CREATE_SUITE_KEY,即
dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env. CREATE_SUITE_KEY);
如果已有套件,使用Env.SUITE_KEY,且在ENV檔案中將public static final String SUITE_KEY = "xxxx";賦值,即
dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env.SUITE_KEY);


五、通用問題
1.isv接入demo
最近收到isv接入demo存在加解密失敗問題,這部分demo正在更新,近期會更新(http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.ai7Y3e#加解密庫和demo下載)
2.釘釘https下使用oss Js SDK請求ERRSSLPROTOCOLERROR
https://bbs.aliyun.com/read/275103.html?spm=0.0.0.0.L7U6vv


六、常見需求及建議回覆
1.發Ding的介面是否支援
釘釘不對外提供提供服務端ding介面


2.釘釘是否開放公告介面
釘釘暫不開放公告介面

3.釘釘是否提供審批、簽到等微應用介面,便於第三方系統資料對接
目前只提供了管理日曆介面接入,詳見http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.ai7Y3e#管理日曆接入指南;
其他暫未提供


4.釘釘產品如何與企業內部的ERP系統實現對接
(1)可以基於釘釘開放平臺開發一個報表的微應用,釘釘提供免登機制獲取使用者資訊,報表許可權由你開發的微應用進行控制
(2)微應用是基於H5開發的,因此可以基於H5開發圖示展示
(3)企業內部的檔案可以通過釘盤進行儲存,也可以存放在自己的伺服器,在微應用內進行下載
以上實現均需開發微應用

七.阿里雲證書問題
1. javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
解決方法可參考http://ddtalk.github.io/blog/2015/09/24/dingtalk/

轉載於:https://blog.csdn.net/yangzai928/article/details/51262703