TencentController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Models\User;
  4. use Illuminate\Http\Request;
  5. use function Symfony\Component\Translation\t;
  6. class TencentController extends Controller
  7. {
  8. public function notify(Request $request){
  9. $data = $request->post() ?? '';
  10. if(empty($data)) return;
  11. if($data['SdkAppid'] == env('TENCENT_IM_APP_ID'))
  12. file_put_contents('logs/tencent.log',var_export($data,true).PHP_EOL,FILE_APPEND);
  13. switch ($data['CallbackCommand']){
  14. /**
  15. * 在线状态
  16. */
  17. case "State.StateChange":
  18. //状态变更回调
  19. if($data['Action']=='Login'){
  20. $online = 1;
  21. }else{
  22. $online = 0;
  23. }
  24. //修改用户状态
  25. User::query()->where(['tencent_im_user_id'=>$data['To_Account'],'status'=>1])->update(['online'=>$online]);
  26. break;
  27. /**
  28. * 资料关系链
  29. */
  30. case "Sns.CallbackPrevFriendAdd":
  31. //添加好友之前回调
  32. break;
  33. case "Sns.CallbackPrevFriendResponse":
  34. //添加好友回应之前回调
  35. break;
  36. case "Sns.CallbackFriendAdd":
  37. //添加好友之后回调
  38. break;
  39. case "Sns.CallbackFriendDelete":
  40. //删除好友之后回调
  41. break;
  42. case "Sns.CallbackBlackListAdd":
  43. //添加黑名单之后回调
  44. break;
  45. case "Sns.CallbackBlackListDelete":
  46. //删除黑名单之后回调
  47. break;
  48. /**
  49. * 单聊消息
  50. */
  51. case "C2C.CallbackBeforeSendMsg":
  52. //发单聊消息之前回调
  53. break;
  54. case "C2C.CallbackAfterSendMsg":
  55. //发单聊消息之后回调
  56. break;
  57. case "C2C.CallbackAfterMsgReport":
  58. //单聊消息已读上报后回调
  59. break;
  60. case "C2C.CallbackAfterMsgWithDraw":
  61. //单聊消息撤回后回调
  62. break;
  63. /**
  64. * 群组系统
  65. */
  66. case "Group.CallbackBeforeCreateGroup":
  67. //创建群组之前回调
  68. break;
  69. case "Group.CallbackAfterCreateGroup":
  70. //创建群组之后回调
  71. break;
  72. case "Group.CallbackBeforeApplyJoinGroup":
  73. //申请入群之前回调
  74. break;
  75. case "Group.CallbackBeforeInviteJoinGroup":
  76. //拉人入群之前回调
  77. break;
  78. case "Group.CallbackAfterNewMemberJoin":
  79. //新成员入群之后回调
  80. break;
  81. case "Group.CallbackAfterMemberExit":
  82. //群成员离开之后回调
  83. break;
  84. case "Group.CallbackBeforeSendMsg":
  85. //群内发言之前回调
  86. break;
  87. case "Group.CallbackAfterSendMsg":
  88. //群内发言之后回调
  89. break;
  90. case "Group.CallbackAfterGroupFull":
  91. //群组满员之后回调
  92. break;
  93. case "Group.CallbackAfterGroupDestroyed":
  94. //群组解散之后回调
  95. break;
  96. case "Group.CallbackAfterGroupInfoChanged":
  97. //群组资料修改之后回调
  98. break;
  99. }
  100. }
  101. }