PHP code example of church / tencent-im
1. Go to this page and download the library: Download church/tencent-im library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
church / tencent-im example snippets
use Church\TencentIm\CallbackHandler;
class IM
{
public function callback(Request $request)
{
$sdkAppID = $request->input('SdkAppid');
$callbackCommand = $request->input('CallbackCommand');
$contentType = $request->input('contenttype');
$clientIP = $request->input('ClientIP');
$optPlatform = $request->input('OptPlatform');
$requestTime = $request->input('RequestTime');
$sign = $request->input('Sign');
$data = $request->post();
$app = new App(env('IM_SDK_APPID'), env('IM_SECRET_KEY'), env('IM_ADMIN_USER_ID'));
$handler = $app->callbackHandler;
$handler->setAuthWay(CallbackHandler::AUTH_TOKEN);
$handler->setToken(env('IM_CALLBACK_AUTH_TOKEN'));
$handler->batchAddEventHandlers([
CallbackHandler::EVENT_SNS_CALLBACK_PREV_FRIEND_ADD => self::class . '::' . 'prevFriendAdd', //添加朋友之前
CallbackHandler::EVENT_SNS_CALLBACK_FRIEND_ADD => self::class . '::' . 'friendAdd', //添加朋友之后
CallbackHandler::EVENT_SNS_CALLBACK_FRIEND_DELETE => self::class . '::' . 'friendDelete', //删除朋友之后
CallbackHandler::EVENT_PROFILE_CALLBACK_PORTRAIT_SET => self::class . '::' . 'portraitSet', //资料设置之后
CallbackHandler::EVENT_GROUP_CALLBACK_BEFORE_CREATE_GROUP => self::class . '::' . 'beforeCreateGroup', //创建群组之前
CallbackHandler::EVENT_GROUP_CALLBACK_AFTER_CREATE_GROUP => self::class . '::' . 'afterCreateGroup', //创建群组之后
CallbackHandler::EVENT_GROUP_CALLBACK_AFTER_NEW_MEMBER_JOIN => self::class . '::' . 'newMemberJoin', //新成员进群组之后
CallbackHandler::EVENT_GROUP_CALLBACK_AFTER_MEMBER_EXIT => self::class . '::' . 'afterMemberExit', //成员退出之后
CallbackHandler::EVENT_GROUP_CALLBACK_AFTER_GROUP_DESTROYED => self::class . '::' . 'afterGroupDestroy',//群组解散之后
CallbackHandler::EVENT_GROUP_CALLBACK_BEFORE_SEND_MSG => self::class . '::' . 'groupBeforeSendMsg', //群内消息发送之前
CallbackHandler::EVENT_GROUP_CALLBACK_AFTER_SEND_MSG => self::class . '::' . 'groupAfterSendMsg', //群内消息发送之后
CallbackHandler::EVENT_GROUP_CALLBACK_AFTER_GROUP_INFO_CHANGED => self::class . '::' . 'afterGroupInfoChanged', //群组资料更改之后
CallbackHandler::EVENT_C2C_CALLBACK_BEFORE_SEND_MSG => self::class . '::' . 'beforeSendMsg', //发送单聊消息之前
CallbackHandler::EVENT_C2C_CALLBACK_AFTER_SEND_MSG => self::class . '::' . 'afterSendMsg', //发送单聊消息之后
CallbackHandler::EVENT_GROUP_CALLBACK_BEFORE_APPLY_JOIN_GROUP => self::class . '::' . 'beforeApplyJoinGroup', //申请加群之前
]);
try {
return $handler->handle($data, $sdkAppID, $callbackCommand, $contentType, $clientIP, $optPlatform, $requestTime, $sign);
} catch (\Exception $e) {
Log::error($e->getMessage() . $e->getTraceAsString());
if (env('APP_DEBUG')) {
echo $e->getMessage();
echo $e->getTraceAsString();
}
}
}
public static function prevFriendAdd
{
return json([
'ActionStatus' => 'OK',
'ErrorCode' => 0,
'ErrorInfo' => ''
]);
}
}
$result = $app->message->sendMsg([
'SyncOtherMachine' => 2,
'To_Account' => 'lumotuwe2',
'MsgLifeTime' => 60,
'MsgSeq' => 93847636,
'MsgRandom' => 1287657,
'MsgBody' => [
[
'MsgType' => 'TIMTextElem',
'MsgContent' => [
'Text' => 'hi, beauty'
]
]
],
'CloudCustomData' => 'your cloud custom data',
'SupportMessageExtension' => 0
])
if ($result['ActionStatus'] == 'OK' && $result['ErrorCode'] == 0) {
// 走成功逻辑
} else {
// 走失败逻辑
}
$result = $app->session->getList([
'From_Account' => 'id1',
'TimeStamp' => 0,
'StartIndex' => 0,
'TopTimeStamp' => 0,
'TopStartIndex' => 0,
'AssistFlags' => 15
]);
if ($result['ActionStatus'] == 'OK' && $result['ErrorCode'] == 0) {
// 走成功逻辑
} else {
// 走失败逻辑
}
$result = $app->group->createGroup([
'Owner_Account' => 'leckie',
'Type' => 'Public',
'Name' => 'TestGroup'
]);
if ($result['ActionStatus'] == 'OK' && $result['ErrorCode'] == 0) {
// 走成功逻辑
} else {
// 走失败逻辑
}
$result = $app->account->importAccount([
'UserID' => '1111',
'FaceUrl' => 'http://www.qq.com',
'Nick' => 'TestGroup'
]);
if ($result['ActionStatus'] == 'OK' && $result['ErrorCode'] == 0) {
// 走成功逻辑
} else {
// 走失败逻辑
}
$result = $app->shutup->setNoSpeaking([
'Set_Account' => '1111',
'C2CmsgNospeakingTime' => 4294967295,
'GroupmsgNospeakingTime' => 7200
]);
if ($result['ActionStatus'] == 'OK' && $result['ErrorCode'] == 0) {
// 走成功逻辑
} else {
// 走失败逻辑
}
$result = $app->operation->getAppInfo([]);
if ($result['ActionStatus'] == 'OK' && $result['ErrorCode'] == 0) {
// 走成功逻辑
} else {
// 走失败逻辑
}
$result = $app->robot->create([
'UserID' => '@RBT#0001'
]);
if ($result['ActionStatus'] == 'OK' && $result['ErrorCode'] == 0) {
// 走成功逻辑
} else {
// 走失败逻辑
}