根据服务体系开放的getaccesstoken接口获取数据服务的访问token(需要注册应用时返回的appID和appKey)。
服务商调用平台接口的第一步,访问令牌是服务商使用数据服务的凭证,通过访问令牌服务商可以使用自身权限下的数据服务。
无
url | http://ip:port/apigateway/getaccesstoken |
---|---|
协议 | Post |
格式 | Json |
是否需要鉴权 | 否 |
请求数限制 | 否 |
接口方向 | 第三方应用>服务体系 |
序号 | 字段名 | 约束 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|
1 | appid | 必选 | String | 64 | 应用ID |
2 | timestamp | 必选 | String | 时间戳 | |
3 | keyinfo | 必选 | String | 对APPID、APPKEY、Timestamp进行sha1-hamc运算,加密串为APPID和APPKEY及Timestamp字符串相连,以APPKEY为加密参数; Php使用的签名函数:hash_hmac,hash_algos参数值为“sha1” |
序号 | 字段名 | 约束 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|
1 | retCode | 必选 | String | 10 | 返回码 |
2 | retDesc | 必选 | String | 返回码描述 | |
3 | tokenInfo | 必选 | JSON | 返回的token对象信息 | |
3.1 | validtime | 必选 | String | 32 | 返回token有效期 |
3.2 | platformCode | 可选 | String | 10 | 所属平台编码 |
3.3 | appKey | 必选 | String | 32 | 应用Key |
3.4 | userId | 必选 | String | 32 | 用户编码 |
3.5 | appId | 必选 | String | 32 | 应用ID |
3.6 | token | 必选 | String | 32 | 访问令牌 |
3.7 | id | 必选 | String | 32 | 应用主键 |
请求参数: { "appid":"5736915E311EA64DEA******", "keyinfo":"E4AA972000C1262169743C******", "timestamp":"1458282******" } 返回值: { "tokenInfo": { "validtime": "14670914******", "platformCode": "", "appkey": "8583C30ED82CFC4169C4******", "userId": "AP93******", "appId": "B1901B73D882387798AA5******", "token": "77b117c4069e4f74b2434******", "id": "5736915E311EA64DEA49547******" }, "retCode": "000000", "retDesc": "获取Token成功。" } |
运行本节描述的 Java 代码之前,请按以下说明准备好环境
1. 通过下面方式可以引入依赖:
– 下载依赖jar包:
下载链接:
– 该jar包是一个大jar包,它包含了org.apache.activemq:activemq-all:5.13.2
2. 代码里涉及到的token,appQueueApplyId,需要到服务体系上创建获取。具体过程参考数据交换服务接入文档。
服务商通过应用或者平台接入数据交换中心发布数据
数据交换针对所以接入的订阅服务,都会提供一定量的测试报文数据;针对发布所有推送的数据对于数据交换系统都是测试数据,不会影响到真实数据。服务商可以通过统计功能页面,查看自己对应服务的推送/消费的报文量情况。
服务商发布数据之前请通过服务体系获取发布数据服务码。开发测试阶段,可以通过设置环境EnvironmentManager.switchEnvironmentToTest();设置成测试环境,发布测试数据,测试发布数据服务,上线后设置sdk环境EnvironmentManager.switchEnvironmentToOnline();可以进行上线正式环境部署。sdk默认为EnvironmentManager.switchEnvironmentToTest();。
static {
//默认为测试环境
EnvironmentManager.switchEnvironmentToOnline();//切换到正式环境
EnvironmentManager.switchEnvironmentToTest();//切换到测试环境
}
/**
* 特殊的应用不需要token
*
*/
private static void publish() {
String appQueueApplyId = "xxxxx"; //服务编号
JMSProducerWrapperjmsProducerWrapper = JMSProducerFactory
.getJMSProducer(appQueueApplyId);
JMSProducerjmsProducer = jmsProducerWrapper.getJmsProducer();
//获取队列名称
String queueName = jmsProducerWrapper.getQueueName();
//发送消息
jmsProducer.send(queueName, "发送的消息");
}
服务商通过应用或者平台接入数据交换中心订阅数据
服务商发布数据之前请通过服务体系获取订阅数据服务码和token。开发测试阶段,可以通过设置环境EnvironmentManager.switchEnvironmentToTest();设置成测试环境,订阅测试数据,测试订阅数据服务,上线后设置sdk环境EnvironmentManager.switchEnvironmentToOnline();可以进行上线正式环境部署。sdk默认为EnvironmentManager.switchEnvironmentToTest();。
static {
// 设置正式测试环境
EnvironmentManager.switchEnvironmentToOnline();//正式环境
EnvironmentManager.switchEnvironmentToTest();//测试环境
}
public static void main(String[] args) {
String token = "xxxxxxx"; //用户token,用来数据服务权限验证
String appQueueApplyId = "xxxxxxx"; //服务编号
MultiThreadMessageListenermultiThreadMessageListener = newMultiThreadMessageListener(newMessageHandler() {
@Override
public void handle(Message message) {
try {
//获取数据入口
System.out.println(((ActiveMQTextMessage) message).getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
//传入参数
JMSConsumer.receiveAndHandleMsg(token, appQueueApplyId, multiThreadMessageListener);
}