64 lines
1.8 KiB
Go
64 lines
1.8 KiB
Go
/**
|
||
* @Author: Echo
|
||
* @Author:1711788888@qq.com
|
||
* @Date: 2021/8/31 15:14
|
||
* @Desc: TODO
|
||
*/
|
||
|
||
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"log"
|
||
"net/http"
|
||
|
||
"git.echol.cn/loser/tencent-im"
|
||
"git.echol.cn/loser/tencent-im/account"
|
||
"git.echol.cn/loser/tencent-im/callback"
|
||
)
|
||
|
||
func main() {
|
||
tim := im.NewIM(&im.Options{
|
||
AppId: 1400579830, // 无效的AppId,请勿直接使用
|
||
AppSecret: "0d2a321b087fdb8fd5ed5ea14fe0489139086eb1b03541283fc9feeab8f2bfd3", // 无效的AppSecret,请勿直接使用
|
||
UserId: "administrator", // 管理员用户账号,请在腾讯云IM后台设置管理账号
|
||
})
|
||
|
||
// 导入账号
|
||
if err := tim.Account().ImportAccount(&account.Account{
|
||
UserId: "test1",
|
||
Nickname: "测试账号1",
|
||
FaceUrl: "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png",
|
||
}); err != nil {
|
||
if e, ok := err.(im.Error); ok {
|
||
fmt.Println(fmt.Sprintf("import account failed, code:%d, message:%s.", e.Code(), e.Message()))
|
||
} else {
|
||
fmt.Println(fmt.Sprintf("import account failed:%s.", err.Error()))
|
||
}
|
||
}
|
||
|
||
fmt.Println("import account success.")
|
||
|
||
// 注册回调事件
|
||
tim.Callback().Register(callback.EventAfterFriendAdd, func(ack callback.Ack, data interface{}) {
|
||
fmt.Printf("%+v", data.(callback.AfterFriendAdd))
|
||
_ = ack.AckSuccess(0)
|
||
})
|
||
|
||
// 注册回调事件
|
||
tim.Callback().Register(callback.EventAfterFriendDelete, func(ack callback.Ack, data interface{}) {
|
||
fmt.Printf("%+v", data.(callback.AfterFriendDelete))
|
||
_ = ack.AckSuccess(0)
|
||
})
|
||
|
||
// 开启监听
|
||
http.HandleFunc("/callback", func(writer http.ResponseWriter, request *http.Request) {
|
||
tim.Callback().Listen(writer, request)
|
||
})
|
||
|
||
// 启动服务器
|
||
if err := http.ListenAndServe(":8080", nil); err != nil {
|
||
log.Fatal("ListenAndServe: ", err)
|
||
}
|
||
}
|