直播系统开发,php集成极光IM三方
时间:2022-05-18 09:33:02 | 来源:行业动态
时间:2022-05-18 09:33:02 来源:行业动态
极光 IM(英文名 JMessage)致力于帮助 App 解决应用内聊天和跨应用聊天问题,开发者可集成SDK,快速实现稳定可靠的聊天功能。目前提供 iOS / Android / web / PC(Windows、macOS) 的 SDK,以及 Rest API 和后台管理系统,满足开发者不同场景下的需求,大大减少开发成本,提高效率。
说到极光产品,首先区分下极光推送和极光IM的区别:
JMessage 以 IM 使用场景出发,面向用户根据登录帐号来收发消息;而 JPush 则满足推送场景,面向移动设备,根据设备的标签以及使用属性进行推送。
开发者可以根据自身业务场景来选择适用的业务。
如果你的应用需要实现即时通讯功能,满足用户间的互动需求,那么 JMessage 是为您准备的。
如果应用主要以发送功能通知,活动推广,订阅与广播内容为主,应该选择更为简洁的推送服务。如果后续业务需要扩展,可以再集成 JMessage,对原有的 Push 功能无任何影响。
PHP端集成JMessage SDK的参考文档:
https://docs.jiguang.cn/jmessage/server/sdk/php_sdk/
在GitHub上也提供了JMessage的demo源文件。
https://github.com/jpush/jmessage-api-php-client
以下是ThinkPHP集成JMessage实现给用户发送文本消息的例子:
首先,将从GitHub上下载的源码放在Vendor文件夹下。注意,源码中的示例代码不用放在文件夹下。
我们从示例代码中找到text_message_examples.php文件,这里就是发送文本信息的示例代码。
通过查看官方文档,我们找到了发送文本消息参数列表文件:
https://github.com/jpush/jmessage-api-php-client/blob/master/docs/GUIDE.md#消息相关
一:从事例中我们发现,需要先引用use JMessage/JMessage;我们将此代码复制到控制器的头部代码中。
二:我们发现需要引入一个autoload.php文件
那么,我们可以用ThinkPHP的vendor方法将该文件导入,如下图:
接下来是通过极光推送的appKey和masterSecret创建一个JMessage对象。
$appKey = 'xxxx';
$masterSecret = 'xxxx';
$jm = new JMessage($appKey, $masterSecret);
三:发送文本消息时,必须通过极光的管理员账号来发送,所以,我们需要先注册一个极光管理员账户,这时,我们找到示例代码中admin/admin_register_examples.php文件。
通过以上代码,需要引入JMessage/IM/Admin文件,我们将此代码复制到控制器文件头部。
按照demo文件注册一个极光管理员账号.
https://docs.jiguang.cn/jmessage/client/im_errorcode_server/状态码列表
通过打印$response,发现$response['body']==""代表注册成功,返回的状态码为899001表示用户已存在。这样,判断两种状态都可以认为用户已经存在。
下面就是按照demo的例子发送信息,将$from和$target里面替换为对应的账号即可。
$from = [
'id' = 'dsp_admin_1',
'type' = 'admin'
];
$target = [
'id' = '12156',
'type' = 'single'
];
$msg = [
'text' = 'Hello World'
];
$notification =[
'notifiable'=false //是否在通知栏展示
];
$response = $message-sendText(1, $from, $target, $msg,$notification,[]);