message.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <?php
  2. /*
  3. * 发送消息示例
  4. */
  5. require_once __DIR__ . '/../autoload.php';
  6. $config = require_once 'config.php';
  7. use Easemob\Auth;
  8. use Easemob\Message;
  9. // 初始化授权对象,环信 token 初始化
  10. $easemob = $config['easemob'];
  11. $auth = new Auth($easemob['app_key'], $easemob['client_id'], $easemob['client_secret']);
  12. // 设置 REST 域名,沙箱环境使用,不是沙箱环境会自动获取
  13. if (isset($easemob['api_uri']) && $easemob['api_uri']) {
  14. $auth->setApiUri($easemob['api_uri']);
  15. }
  16. // 实例化对象
  17. $message = new Message($auth);
  18. echo '<pre>';
  19. /*
  20. // 获取用户离线消息数
  21. var_dump($message->countMissedMessages('user1'));
  22. */
  23. /*
  24. var_dump($message->countMissedMessages('user4'));
  25. var_dump($message->countMissedMessages('user5'));
  26. // 发送文本消息
  27. $msg = array(
  28. 'msg' => 'testmessage',
  29. // 扩展,可以没有这个字段,但是如果有,值不能是 “ext:null” 这种形式,否则出错。
  30. 'ext' => array(
  31. 'ext1' => 'val1',
  32. 'ext2' => 'val2',
  33. ),
  34. );
  35. var_dump($message->text('users', array('user4', 'user5'), $msg, 'user3'));
  36. // array(2) {
  37. // ["user5"]=>
  38. // string(18) "992810797698646052"
  39. // ["user4"]=>
  40. // string(18) "992810797698650148"
  41. // }
  42. var_dump($message->countMissedMessages('user4'));
  43. var_dump($message->countMissedMessages('user5'));
  44. */
  45. /*
  46. // 发送文本消息(仅发送给在线用户,消息同步给发送发)
  47. $msg = array(
  48. 'msg' => 'testmessage',
  49. // 扩展,可以没有这个字段,但是如果有,值不能是 “ext:null” 这种形式,否则出错。
  50. 'ext' => array(
  51. 'ext1' => 'val1',
  52. 'ext2' => 'val2',
  53. ),
  54. );
  55. var_dump($message->text('users', array('user4', 'user5'), $msg, 'user3', true, true));
  56. */
  57. /*
  58. var_dump($message->countMissedMessages('user4'));
  59. var_dump($message->countMissedMessages('user5'));
  60. // 发送图片消息
  61. $msg = array(
  62. 'filename' => '1.png', // 图片名称
  63. 'uuid' => 'a4364f90-b0d8-11ec-8cfe-b57d5aca4e63', // 成功上传文件返回的UUID
  64. 'secret' => 'pDZPmrDYEeyGTyPdhVc_kj_MzWvSzIfi3bg_fgkvpVjvQAo5', // 成功上传文件后返回的secret
  65. 'size' => array( // 图片尺寸;height:高度,width:宽
  66. 'width' => 36,
  67. 'height' => 36,
  68. ),
  69. );
  70. var_dump($message->image('users', array('user4', 'user5'), $msg, 'user3'));
  71. // array(2) {
  72. // ["user5"]=>
  73. // string(18) "992037625382568852"
  74. // ["user4"]=>
  75. // string(18) "992037625382572948"
  76. // }
  77. var_dump($message->countMissedMessages('user4'));
  78. var_dump($message->countMissedMessages('user5'));
  79. */
  80. /*
  81. var_dump($message->countMissedMessages('user4'));
  82. var_dump($message->countMissedMessages('user5'));
  83. // 发送语音消息
  84. $msg = array(
  85. 'filename' => '1.aud.silk', // 语音名称
  86. 'uuid' => 'a4364f90-b0d8-11ec-8cfe-b57d5aca4e63', // 成功上传文件返回的UUID
  87. 'secret' => 'pDZPmrDYEeyGTyPdhVc_kj_MzWvSzIfi3bg_fgkvpVjvQAo5', // 成功上传文件后返回的secret
  88. 'length' => 10, // 语音时间(单位:秒)
  89. );
  90. var_dump($message->audio('users', array('user4', 'user5'), $msg, 'user3'));
  91. // array(2) {
  92. // ["user5"]=>
  93. // string(18) "992037819046167688"
  94. // ["user4"]=>
  95. // string(18) "992037819046171784"
  96. // }
  97. var_dump($message->countMissedMessages('user4'));
  98. var_dump($message->countMissedMessages('user5'));
  99. */
  100. /*
  101. var_dump($message->countMissedMessages('user4'));
  102. var_dump($message->countMissedMessages('user5'));
  103. // 发送视频消息
  104. $msg = array(
  105. 'filename' => 'movie.mp4', // 视频文件名称
  106. 'uuid' => 'a4364f90-b0d8-11ec-8cfe-b57d5aca4e63', // 成功上传文件返回的UUID
  107. 'secret' => 'pDZPmrDYEeyGTyPdhVc_kj_MzWvSzIfi3bg_fgkvpVjvQAo5', // 成功上传文件后返回的secret
  108. 'thumb_uuid' => 'a4364f90-b0d8-11ec-8cfe-b57d5aca4e63', // 成功上传视频缩略图返回的 UUID
  109. 'thumb_secret' => 'pDZPmrDYEeyGTyPdhVc_kj_MzWvSzIfi3bg_fgkvpVjvQAo5', // 成功上传视频缩略图后返回的secret
  110. 'length' => 13, // 视频播放长度
  111. 'file_length' => 318465, // 视频文件大小(单位:字节)
  112. );
  113. var_dump($message->video('users', array('user4', 'user5'), $msg, 'user3'));
  114. // array(2) {
  115. // ["user5"]=>
  116. // string(18) "992038184839807128"
  117. // ["user4"]=>
  118. // string(18) "992038184839811224"
  119. // }
  120. var_dump($message->countMissedMessages('user4'));
  121. var_dump($message->countMissedMessages('user5'));
  122. */
  123. /*
  124. var_dump($message->countMissedMessages('user4'));
  125. var_dump($message->countMissedMessages('user5'));
  126. // 发送文件消息
  127. $msg = array(
  128. 'filename' => '1.txt', // 文件名称
  129. 'uuid' => 'a4364f90-b0d8-11ec-8cfe-b57d5aca4e63', // 成功上传文件返回的UUID
  130. 'secret' => 'pDZPmrDYEeyGTyPdhVc_kj_MzWvSzIfi3bg_fgkvpVjvQAo5', // 成功上传文件后返回的secret
  131. );
  132. var_dump($message->file('users', array('user4', 'user5'), $msg, 'user3'));
  133. // array(2) {
  134. // ["user5"]=>
  135. // string(18) "992038408064860188"
  136. // ["user4"]=>
  137. // string(18) "992038408064864284"
  138. // }
  139. var_dump($message->countMissedMessages('user4'));
  140. var_dump($message->countMissedMessages('user5'));
  141. */
  142. /*
  143. var_dump($message->countMissedMessages('user4'));
  144. var_dump($message->countMissedMessages('user5'));
  145. // 发送位置消息
  146. $msg = array(
  147. 'lat' => '39.966', // 纬度
  148. 'lng' => '116.322', // 经度
  149. 'addr' => '中国北京市海淀区中关村', // 地址
  150. );
  151. var_dump($message->location('users', array('user4', 'user5'), $msg, 'user3'));
  152. // array(2) {
  153. // ["user5"]=>
  154. // string(18) "992038552529272984"
  155. // ["user4"]=>
  156. // string(18) "992038552529277080"
  157. // }
  158. var_dump($message->countMissedMessages('user4'));
  159. var_dump($message->countMissedMessages('user5'));
  160. */
  161. /*
  162. var_dump($message->countMissedMessages('user4'));
  163. var_dump($message->countMissedMessages('user5'));
  164. // 发送透传消息
  165. $msg = array(
  166. 'event' => 'notification', // 自定义键值
  167. );
  168. var_dump($message->cmd('users', array('user4', 'user5'), $msg, 'user3'));
  169. // array(2) {
  170. // ["user5"]=>
  171. // string(18) "992038709236860040"
  172. // ["user4"]=>
  173. // string(18) "992038709236864136"
  174. // }
  175. var_dump($message->countMissedMessages('user4'));
  176. var_dump($message->countMissedMessages('user5'));
  177. */
  178. /*
  179. var_dump($message->countMissedMessages('user4'));
  180. var_dump($message->countMissedMessages('user5'));
  181. // 发送自定义消息
  182. $msg = array(
  183. 'customEvent' => 'xxx', // 用户自定义的事件类型,必须是string,值必须满足正则表达式 [a-zA-Z0-9-_/\.]{1,32},最短1个字符 最长32个字符
  184. 'customExts' => array( // 用户自定义的事件属性,类型必须是Map<String,String>,最多可以包含16个元素。customExts 是可选的,不需要可以不传
  185. 'asd' => '123',
  186. ),
  187. 'ext' => array(
  188. 'test' => 'test111',
  189. ),
  190. );
  191. var_dump($message->custom('users', array('user4', 'user5'), $msg, 'user3'));
  192. // array(2) {
  193. // ["user5"]=>
  194. // string(18) "992038835590266892"
  195. // ["user4"]=>
  196. // string(18) "992038835590270988"
  197. // }
  198. var_dump($message->countMissedMessages('user4'));
  199. var_dump($message->countMissedMessages('user5'));
  200. */
  201. /*
  202. // 获取某条离线消息状态
  203. var_dump($message->isMessageDeliveredToUser('user4', '992810797698650148'));
  204. var_dump($message->isMessageDeliveredToUser('user5', '992810797698646052'));
  205. */
  206. /*
  207. date_default_timezone_set('PRC');
  208. // 获取历史消息文件
  209. var_dump($message->getHistoryAsUri(2022032916));
  210. */
  211. /*
  212. // 下载消息历史文件到本地
  213. $message->getHistoryAsLocalFile(2022032916, '111.gz');
  214. */
  215. /*
  216. $msg = array(
  217. 'msg' => 'testmessage',
  218. // 扩展,可以没有这个字段,但是如果有,值不能是 “ext:null” 这种形式,否则出错。
  219. 'ext' => array(
  220. 'ext1' => 'val1',
  221. 'ext2' => 'val2',
  222. ),
  223. );
  224. var_dump($message->text('users', array('user4', 'user5'), $msg, 'user3'));
  225. // array(2) {
  226. // ["user5"]=>
  227. // string(18) "992813372330214544"
  228. // ["user4"]=>
  229. // string(18) "992813372330218640"
  230. // }
  231. */
  232. /*
  233. // 撤回消息
  234. $msg = array(
  235. 'msg_id' => '992813372330218640',
  236. 'chat_type' => 'chat',
  237. 'force' => true
  238. );
  239. var_dump($message->withdraw($msg));
  240. */
  241. /*
  242. // 服务端单向删除会话
  243. var_dump($message->deleteSession('user3', '992813372330218640', 'chat'));
  244. */