wework.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package wework
  2. import (
  3. "fmt"
  4. "github.com/silenceper/wechat/v2"
  5. "github.com/silenceper/wechat/v2/cache"
  6. "github.com/silenceper/wechat/v2/work/config"
  7. "github.com/silenceper/wechat/v2/work/msgaudit"
  8. "github.com/xen0n/go-workwx"
  9. _ "github.com/xen0n/go-workwx" // package workwx
  10. )
  11. var (
  12. WeWorkCorpID = "ww5008ae926e352838"
  13. WeWorkFinanceCorpSecret = "-A48aGB1zZYURAPJBgYk5Lpaqx_j7sGgUL7gUVfzfcc" //企业微信 会话存档secret
  14. WeWorkExternalContactCorpSecret = "LgKgtar8gxnKlh_GO8VcvDa9V1oEO_A8o5qPjQoj4to" //企业微信 客户联系 secret
  15. //WeWorkContactCorpSecret = "ER4eEIski4oGVXjSwZ2uCTL_r0h5qERQz8vvOxE3xsM" //企业微信 通讯录 secret
  16. agentID = int64(0)
  17. UserNameAgentID = int64(1000011)
  18. WeWorkUserNameAgentSecret = "fkzl42sVb4OuwePxJ1WaUvhCAfpwiCyIG_1hLJzF8Qc" //企业微信 自建应用的获取员工姓名的 secret
  19. NotifyToken = "uPK8fG9xHfQaWuhNnGGEhN"
  20. NotifyEncodingAESKey = "N57BVy29HoxTlSlCJfm7cwLWu1KUjvEu5oqnyJXuMfm"
  21. WeWorkFinanceCorpRasPrivateKey = `
  22. -----BEGIN RSA PRIVATE KEY-----
  23. MIIEpAIBAAKCAQEAtbdCeRcXRrq/4sa8k/1aCRmSjZxHYKy/wG/iqX5GkX86T8xi
  24. ZOUgD+2eVKGwa8PJK2aH6DGWnGTDUgPr4/vTyToSf4roA+pJADOA4dtIlxUv3Rh2
  25. n+fI/O8spk+IZnZshhQIkpfYQUH9XKOm8EHAA9yYk3fmZh60iJ9R3cvQoscqEC+6
  26. K0VnlKvfiz3XpB+zK9yIOWWpqdtjIHWOCKzwZKqTjSheLBfDDKmu7N/YMquFBLvf
  27. rIPW9A1cBAo4b4tR8fbciuhlQymZQjn1RQAidZDwjnGZCTm10G/3xZSw8BNeTqjt
  28. TThTk0YTxE1fnEVKwfSFk6BxQDVcg40u3K960QIDAQABAoIBAAOMCHbjIb/ucMTt
  29. Mqyj1yBS2La9bHJBZPvNY0wCLD/2Tw3UND56b3oIHh1SS6aK25Amj/QTFbjHSb29
  30. 2FqqpXtp0Acfz8AV0Gd52ePuuxfB4N2MtvIPnO98/q7fYg739E3YscMkxiKd9mNa
  31. yW0qp2Qb5/mG718ibc016OvuqMuolYy96M6hmlLhbE0n6WQbw5i1t2QUPhLbABpa
  32. crBWSdWtJwku7WVETX9TGe3LZDNnjFWv95UnBsyajkI21NTLmY4VlqvUeT/ASftG
  33. su2aujY3EjNu++aGeAcI5f1kPi+w0cI02GDUA9VAe8tsR9GZ8G53K/kAUAfmwHKG
  34. 81e8wi0CgYEAt5UwxXbCYS7aAVaselAm4U+uP8yAi+S+/kOZYCn4x2j/ceTSLAKT
  35. vhcsj1+f5Y3ScmLZXin58hkG3v7xS5B0WJ+yR8i8PEarEmbrttY707P5mfsXJS2x
  36. b7R5zhcIs3mvkHOH1dhZkyNlqo2YCMkUxCZdWnxde5DOx64Lz0X3v+UCgYEA/WWK
  37. oL9vrDK9kdhFaSGC6OD4lM+gS6CTHzOAKrYI00o3kkGiRlXNTzob9zLuzRzeU/k5
  38. wMXoAj8pvI2b/jTNws12G+dqVKq9He6hgHXwntCLGQnixACuIrAQLFNL/Kze4unE
  39. XtBLiIA5DbqSEfVO1kYFC4mr6i+E7e4ws8AfKH0CgYBmDyjH/lfd00AbUmYcsYaL
  40. 59JFYZltLEQJ8ubHkU3e/j5UwRMeqGgeW5/ILS8lXQzLzqxtLwTnVIZ/Xlgi3DHy
  41. OwXP5obPM7JTTqhoQv2Lmhh/RBn/70EfisPUkPWjYVj7A19WwSo7JIiWopUM/Uzw
  42. Jyvq7AzEbyKl29pw5sLvCQKBgQC0GZuyLN4+UcITCtgqpLrasit7+SZBGlv27S/H
  43. K6KSKkndFfE0dH98NBz0UasQ9de/b3/w17jS//m2HiAlSXqFXmr34j7c9o173MPE
  44. /g6LkkWLAk++Z41c8i5MkteLO4MfXG9JxForJpdmfpibUvM5sIKddLhPtn6QbZ8H
  45. 4yFCMQKBgQCgojMUEo3YQLh35sFFGuUemqmCU7/xj6BrjRX49o90MWXIeDIR2EhP
  46. nCGRqeOfiUR69ZrjOohlt//2PWmlE1Y8v/pKmwfqZdB/xtn3klxJaAy708TrjDe2
  47. +0PzPXuFP5iyIxa44mEakRvw9RbCvXg5VNiwztHoWj+Om8P9+LMCgw==
  48. -----END RSA PRIVATE KEY-----`
  49. )
  50. type WeWorkMsgAuditClient struct {
  51. Client *msgaudit.Client
  52. }
  53. type WeWorkExternalContactClient struct {
  54. Client *workwx.WorkwxApp
  55. }
  56. type WeWorkMsgAuditApiClient struct {
  57. Client *workwx.WorkwxApp
  58. }
  59. type WeWorkUserNameClient struct {
  60. Client *workwx.WorkwxApp
  61. }
  62. func NewWeWorkMsgAuditClient() *WeWorkMsgAuditClient {
  63. wc := wechat.NewWechat()
  64. memory := cache.NewMemory()
  65. //memory := cache.NewRedis(global.Redis)
  66. cfg := &config.Config{
  67. CorpID: WeWorkCorpID,
  68. CorpSecret: WeWorkFinanceCorpSecret,
  69. AgentID: "",
  70. Cache: memory,
  71. RasPrivateKey: WeWorkFinanceCorpRasPrivateKey,
  72. Token: "",
  73. EncodingAESKey: "",
  74. }
  75. wework := wc.GetWork(cfg)
  76. client, err := wework.GetMsgAudit()
  77. if err != nil {
  78. return nil
  79. }
  80. return &WeWorkMsgAuditClient{
  81. Client: client,
  82. }
  83. }
  84. func NewWeWorkExternalContactClient() *WeWorkExternalContactClient {
  85. client := workwx.New(WeWorkCorpID)
  86. // work with individual apps
  87. app := client.WithApp(WeWorkExternalContactCorpSecret, agentID)
  88. return &WeWorkExternalContactClient{
  89. Client: app,
  90. }
  91. }
  92. func NewWeWorkUserNameClient() *WeWorkUserNameClient {
  93. client := workwx.New(WeWorkCorpID)
  94. // work with individual apps
  95. app := client.WithApp(WeWorkUserNameAgentSecret, UserNameAgentID)
  96. return &WeWorkUserNameClient{
  97. Client: app,
  98. }
  99. }
  100. func NewWeWorkMsgAuditApiClient() *WeWorkMsgAuditApiClient {
  101. client := workwx.New(WeWorkCorpID)
  102. // work with individual apps
  103. app := client.WithApp(WeWorkFinanceCorpSecret, agentID)
  104. return &WeWorkMsgAuditApiClient{
  105. Client: app,
  106. }
  107. }
  108. func (we *WeWorkExternalContactClient) GetExternalContact(externalUserid string) (ret *workwx.ExternalContactInfo, err error) {
  109. //ret, err := we.Client.GetExternalContact("wmPhSiBwAA8bqgBzwlPcttfPZbZh7heQ")
  110. ret, err = we.Client.GetExternalContact(externalUserid)
  111. return
  112. }
  113. func (we *WeWorkExternalContactClient) BatchListExternalContact(userId string) {
  114. //userId := "YanLiNa"
  115. ret, err := we.Client.BatchListExternalContact(userId, "", 100)
  116. if err != nil {
  117. fmt.Println(err)
  118. return
  119. }
  120. fmt.Println(ret)
  121. }
  122. func (wa *WeWorkMsgAuditApiClient) GetMsgAuditGroupChat(roomId string) (ret *workwx.MsgAuditGroupChat, err error){
  123. // roomId := "wrPhSiBwAAqC4Ctn430KPc-TEu8UtmAw"
  124. ret, err = wa.Client.GetMsgAuditGroupChat(roomId)
  125. if err != nil {
  126. fmt.Println(err)
  127. return
  128. }
  129. fmt.Println(ret)
  130. return
  131. }
  132. func (we *WeWorkUserNameClient) GetUser(userId string) (ret *workwx.UserInfo, err error) {
  133. ret, err = we.Client.GetUser(userId)
  134. if err != nil {
  135. fmt.Println(err)
  136. return
  137. }
  138. fmt.Println(ret)
  139. return
  140. }