參考地址
- https://ding-doc.dingtalk.com/doc#/serverapi2/wk3krc 官方文檔。不建議使用內部代碼,而是直接通過postman去測試,再轉換成對應的代碼
1.獲取AccessToken
https://ding-doc.dingtalk.com/doc#/serverapi2/eev437
private static string GetAccessToken()
{
DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest request = new OapiGettokenRequest();
request.Appkey = "Appkey";//填寫對應的Appkey
request.Appsecret = "Appsecret ";//填寫對應的Appsecret
request.SetHttpMethod("GET");
OapiGettokenResponse response = client.Execute(request);
string result = response.AccessToken;
return result;
}
2.上傳釘盤文件
單步上傳文件,文件大小不得超過8M。
/// <summary>
/// 通過釘盤 上傳文件
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static string UploadFile(string filePath)
{
OapiFileUploadSingleRequest request = new OapiFileUploadSingleRequest();
request.FileSize=(1000L);
request.AgentId=("AgentId");//填寫對應的AgentId
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/file/upload/single?" + WebUtils.BuildQuery(request.GetParameters()));
// 必須重新new一個請求
request = new OapiFileUploadSingleRequest();
request.File=(new FileItem(filePath));
OapiFileUploadSingleResponse response = client.Execute(request, Get_CorPsecret());
return response.Body;//返回文件存儲id
}
3.發送文件給用戶
/// <summary>
/// 通過釘盤里面的文件發送給用戶
/// </summary>
/// <param name="userID"></param>
/// <param name="mediaID"></param>
/// <param name="fileName"></param>
/// <returns></returns>
public static string SendUserMedia(string userID, string mediaID,string fileName)
{
OapiCspaceAddToSingleChatRequest request = new OapiCspaceAddToSingleChatRequest();
request.AgentId= "AgentId";//填寫對應的AgentId
request.Userid=("Userid");//釘釘用戶對應ID
request.MediaId = HttpUtility.UrlEncodeUnicode(mediaID);
request.FileName= fileName;
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/cspace/add_to_single_chat?" + WebUtils.BuildQuery(request.GetParameters()));
OapiCspaceAddToSingleChatResponse response = client.Execute(request, Get_CorPsecret());
return response.Body;
}