|
26 | 26 | FeishuPayload struct {
|
27 | 27 | Timestamp int64 `json:"timestamp,omitempty"` // Unix timestamp for signature verification
|
28 | 28 | Sign string `json:"sign,omitempty"` // Signature for verification
|
29 |
| - MsgType string `json:"msg_type"` // text / post / image / share_chat / interactive / file /audio / media |
| 29 | + MsgType string `json:"msg_type"` // text / post / image / share_chat / interactive / file /audio / media |
30 | 30 | Content struct {
|
31 | 31 | Text string `json:"text"`
|
32 | 32 | } `json:"content"`
|
@@ -204,44 +204,44 @@ func GenSign(secret string, timestamp int64) (string, error) {
|
204 | 204 |
|
205 | 205 | func newFeishuRequest(_ context.Context, w *webhook_model.Webhook, t *webhook_model.HookTask) (*http.Request, []byte, error) {
|
206 | 206 | var pc payloadConvertor[FeishuPayload] = feishuConvertor{}
|
207 |
| - |
| 207 | + |
208 | 208 | // Get the payload first
|
209 | 209 | payload, err := newPayload(pc, []byte(t.PayloadContent), t.EventType)
|
210 | 210 | if err != nil {
|
211 | 211 | return nil, nil, err
|
212 | 212 | }
|
213 |
| - |
| 213 | + |
214 | 214 | // Add timestamp and signature if secret is provided
|
215 | 215 | if w.Secret != "" {
|
216 | 216 | timestamp := time.Now().Unix()
|
217 | 217 | payload.Timestamp = timestamp
|
218 |
| - |
| 218 | + |
219 | 219 | // Generate signature
|
220 | 220 | sign, err := GenSign(w.Secret, timestamp)
|
221 | 221 | if err != nil {
|
222 | 222 | return nil, nil, err
|
223 | 223 | }
|
224 | 224 | payload.Sign = sign
|
225 | 225 | }
|
226 |
| - |
| 226 | + |
227 | 227 | // Marshal the payload
|
228 | 228 | body, err := json.MarshalIndent(payload, "", " ")
|
229 | 229 | if err != nil {
|
230 | 230 | return nil, nil, err
|
231 | 231 | }
|
232 |
| - |
| 232 | + |
233 | 233 | // Create the request
|
234 | 234 | method := w.HTTPMethod
|
235 | 235 | if method == "" {
|
236 | 236 | method = http.MethodPost
|
237 | 237 | }
|
238 |
| - |
| 238 | + |
239 | 239 | req, err := http.NewRequest(method, w.URL, bytes.NewReader(body))
|
240 | 240 | if err != nil {
|
241 | 241 | return nil, nil, err
|
242 | 242 | }
|
243 | 243 | req.Header.Set("Content-Type", "application/json")
|
244 |
| - |
| 244 | + |
245 | 245 | // Add default headers
|
246 | 246 | return req, body, addDefaultHeaders(req, []byte(w.Secret), w, t, body)
|
247 | 247 | }
|
|
0 commit comments