|
|
|
@ -11,9 +11,8 @@ import (
|
|
|
|
|
"errors"
|
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/astaxie/beego/httplib"
|
|
|
|
|
"github.com/rongcloud/server-sdk-go/v3/sdk"
|
|
|
|
|
"github.com/xormplus/xorm"
|
|
|
|
|
"io/ioutil"
|
|
|
|
|
"net/http"
|
|
|
|
|
"strings"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
@ -208,71 +207,27 @@ func GetPersonNameMsyql(personId string, identityId string) (string, error) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
功能:发送融云消息
|
|
|
|
|
功能:获取用户TOKEN,也可当作同步用户使用
|
|
|
|
|
作者:吴缤
|
|
|
|
|
日期:2021-08-16
|
|
|
|
|
日期:2021-09-08
|
|
|
|
|
*/
|
|
|
|
|
func SendRongYunMsg(sendType string, fromId string, toId string, objectName string, content string) error {
|
|
|
|
|
sendTypeStr := ""
|
|
|
|
|
toTypeStr := ""
|
|
|
|
|
if sendType == "p" {
|
|
|
|
|
sendTypeStr = "private"
|
|
|
|
|
toTypeStr = "toUserId"
|
|
|
|
|
} else {
|
|
|
|
|
sendTypeStr = "group"
|
|
|
|
|
toTypeStr = "toGroupId"
|
|
|
|
|
}
|
|
|
|
|
url := fmt.Sprintf("https://api-cn.ronghub.com/message/%s/publish.json", sendTypeStr)
|
|
|
|
|
method := "POST"
|
|
|
|
|
|
|
|
|
|
parameter := fmt.Sprintf("fromUserId=%s&%s=%s&objectName=%s&content=%s", fromId, toTypeStr, toId, objectName, content)
|
|
|
|
|
|
|
|
|
|
payload := strings.NewReader(parameter)
|
|
|
|
|
|
|
|
|
|
client := &http.Client{
|
|
|
|
|
}
|
|
|
|
|
req, err := http.NewRequest(method, url, payload)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
func RongYunGetToken(personId string, identityId string, personName string, avatar string) (string, error) {
|
|
|
|
|
//获取云平台配置文件中的融云AK和SK
|
|
|
|
|
configMap, configErr := CommonUtil.GetRongYunConfig()
|
|
|
|
|
if configErr != nil {
|
|
|
|
|
return configErr
|
|
|
|
|
return "", configErr
|
|
|
|
|
}
|
|
|
|
|
ak := configMap["app_key"]
|
|
|
|
|
r := CommonUtil.GetSixRandom()
|
|
|
|
|
ts := CommonUtil.GetTimeStamp()
|
|
|
|
|
sk := configMap["app_secret"]
|
|
|
|
|
suffix := configMap["rong_server_name"]
|
|
|
|
|
|
|
|
|
|
st := CommonUtil.SHA1(sk + r + ts)
|
|
|
|
|
|
|
|
|
|
req.Header.Add("RC-App-Key", ak)
|
|
|
|
|
req.Header.Add("RC-Nonce", r)
|
|
|
|
|
req.Header.Add("RC-Timestamp", ts)
|
|
|
|
|
req.Header.Add("RC-Signature", st)
|
|
|
|
|
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
|
|
|
|
|
|
res, err := client.Do(req)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
defer res.Body.Close()
|
|
|
|
|
rc := sdk.NewRongCloud(ak, sk)
|
|
|
|
|
|
|
|
|
|
body, err := ioutil.ReadAll(res.Body)
|
|
|
|
|
user, err := rc.UserRegister(personId+"_"+identityId+suffix, personName, avatar)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
jsonObj, err := CommonUtil.JsonStringToMap(string(body))
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if jsonObj["code"] != float64(200) {
|
|
|
|
|
return errors.New("发送消息失败!")
|
|
|
|
|
return "", err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
return user.Token, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -331,9 +286,9 @@ func GetPersonNameByUserId(userId string) string {
|
|
|
|
|
作者:吴缤
|
|
|
|
|
日期:2021-08-17
|
|
|
|
|
*/
|
|
|
|
|
func GetPersonAvatarByUserId(userId string) string {
|
|
|
|
|
func GetPersonAvatarByUserId(userId string, serverLocation string) string {
|
|
|
|
|
pId, iId := GetPersonIdIdentityId(userId)
|
|
|
|
|
avatar := GetPersonAvatar(pId, iId, "1")
|
|
|
|
|
avatar := GetPersonAvatar(pId, iId, serverLocation)
|
|
|
|
|
return avatar
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -354,13 +309,14 @@ func GetGroupNameAvatarByGroupId(groupId string) (string, string) {
|
|
|
|
|
日期:2021-08-23
|
|
|
|
|
*/
|
|
|
|
|
func GetPersonNameAvatar(fromId string, toId string, sendType string) (fromName, fromAvatar, toName, toAvatar string) {
|
|
|
|
|
//获取是云版还是局版
|
|
|
|
|
serverLocation := GetServerLocation()
|
|
|
|
|
fromName = GetPersonNameByUserId(fromId)
|
|
|
|
|
fromAvatar = GetPersonAvatarByUserId(fromId)
|
|
|
|
|
fromAvatar = GetPersonAvatarByUserId(fromId, serverLocation)
|
|
|
|
|
if sendType == "p" {
|
|
|
|
|
toName = GetPersonNameByUserId(toId)
|
|
|
|
|
toAvatar = GetPersonAvatarByUserId(toId)
|
|
|
|
|
} else
|
|
|
|
|
{
|
|
|
|
|
toAvatar = GetPersonAvatarByUserId(toId, serverLocation)
|
|
|
|
|
} else {
|
|
|
|
|
toName, toAvatar = GetGroupNameAvatarByGroupId(toId)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|