互动
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.1 KiB

package im
import (
"encoding/json"
"errors"
"fmt"
"github.com/kirinlabs/HttpRequest"
"hudongzhuanjia/utils"
)
func AccountImport(identifier, nickname, faceurl string) (string, error) {
//sign, err := tencentyun.GenSig(SdkAppid, SdkAppKey, "admin", 86400*180)
sig, err := GenSig("admin")
if err != nil {
return "", err
}
random := utils.RandomStr(32)
u := fmt.Sprintf("%s/im_open_login_svc/account_import?sdkappid=%d&identifier=admin&usersig=%s&random=%s&contenttype=json",
TxImHostV4, SdkAppid, sig, random)
bs, _ := json.Marshal(&AccountImportParam{
Identifier: identifier,
Nick: nickname,
FaceUrl: faceurl,
})
resp, err := HttpRequest.NewRequest().Debug(true).JSON().Post(u, string(bs))
if err != nil {
return "", err
}
res := CommonResult{}
err = resp.Json(&res)
if err != nil {
return "", err
}
if res.ErrorCode != 0 {
return "", errors.New(res.ErrorInfo)
}
//return tencentyun.GenSig(SdkAppid, SdkAppKey, identifier, 86400000)
return GenSig(identifier)
}
// 群通知
type SendGroupSystemNotificationParam struct {
GroupId string `json:"GroupId"`
Content string `json:"Content"`
ToMembersAccount []string `json:"ToMembers_Account,omitempty"`
}
func SendGroupSystemNotification(groupId string, status NoticeStatus, data map[string]interface{}, members ...string) error {
sig, err := GenSig("admin")
if err != nil {
return err
}
random := utils.RandomStr(32)
u := fmt.Sprintf("%s/group_open_http_svc/send_group_system_notification?sdkappid=%d&identifier=admin&usersig=%s&random=%s&contenttype=json",
TxImHostV4, SdkAppid, sig, random)
var m = make(map[string]interface{})
m["status"] = status
m["data"] = data
content, err := json.Marshal(&m)
if err != nil {
return err
}
bs, err := json.Marshal(&SendGroupSystemNotificationParam{
GroupId: groupId,
Content: string(content),
ToMembersAccount: members,
})
if err != nil {
return err
}
resp, err := HttpRequest.NewRequest().Debug(true).JSON().Post(u, string(bs))
res := CommonResult{}
err = resp.Json(&res)
if err != nil {
return err
}
if res.ErrorCode != 0 {
return errors.New(res.ErrorInfo)
}
return nil
}