互动
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.

58 lines
1.5 KiB

package im
import (
"encoding/json"
"errors"
"fmt"
"github.com/kirinlabs/HttpRequest"
"github.com/tencentyun/tls-sig-api-v2-golang/tencentyun"
"hudongzhuanjia/utils"
)
var (
//SdkAppid = 1400345581
//SdkAppKey = "e3d095ce8253fe18109d6c1ad068907978cac0a428fbad181d8958631b78e930"
SdkAppKey = "9683fc9d2e50857f33c7ef5431942458f2dbc7042ba526f87042092afb646331"
SdkAppid = 1400337419
TxImHost = "https://console.tim.qq.com"
)
type AccountImportResult struct {
ActionStatus string `json:"ActionStatus"`
ErrorCode int `json:"ErrorCode"`
ErrorInfo string `json:"ErrorInfo"`
}
type AccountImportParam struct {
Identifier string `json:"Identifier"`
Nick string `json:"Nick"`
FaceUrl string `json:"FaceUrl"`
}
func AccountImport(identifier, nickname, faceurl string) (string, error) {
sign, err := tencentyun.GenSig(SdkAppid, SdkAppKey, "admin", 86400*180)
if err != nil {
return "", err
}
random := utils.RandomStr(32)
u := fmt.Sprintf("%s/v4/im_open_login_svc/account_import?sdkappid=%d&identifier=admin&usersig=%s&random=%s&contenttype=json", TxImHost, SdkAppid, sign, 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 := AccountImportResult{}
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)
}