刚刚接触物联网,萤石云平台,编写萤石云获取登录的accessToken工具类
我接手写公司物联网的模块,入坑不少,主要不知道有哪些东西要写。
总结流程:
1.先边设备调试好(摄像头),在手机上看到画面
1.1获取获取appKey
萤石云开放平台appKey申请可在开放平台官网注册登录https://open.ys7.com/view/app/app_edit.html(官网),填写正确的信息后开放平台会发放到您的账号下。appKey和appSecret是开放平台应用的秘钥,请不要请泄露,如若泄露可将appSecret重置即可。
1.2手机上下载萤石云视频app
1.3如果设备是二手的(别人使用过),还需要修改设备的IP地址
1.4电脑下载设备网络搜索
1.4.1 百度网盘下载:https://pan.baidu.com/s/1HNC8l2Lvh5_4-OMO_8LWPQ
提取码:6j4u
1.4.2加QQ群:829336169 下载:SADPToo V3.0.2.4.rar压缩包(我习惯工作上使用的软件都会上传到这个群,下次下载就直接下载速度快)
1.5安装设备网络搜索,直接解压,直接运行,下一步就行
1.6打开设备网络搜索
修改设备的IP,(查询自己电脑的IP:打开cmd命令:ipconfig,如果不会我以前有写过这文章)

1.7,登录萤石云视频app,添加设备扫一扫就可以添加成功了
1.8,自己可以看到画面
2.现在开始写Java代码了(开心 高兴)
2.1萤石云官方文档:https://open.ys7.com/doc/zh/book/index/user.html
2.1获取登录的accessToken

package com.smartfarm.base.monitor.core.util;import java.io.IOException;import net.sf.json.JSONObject;import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;/*** 获取登录的accessToken* @author lyq**/
public class GetTokenUtil {public static void main(String[] args) {//我自己的密匙String AppKey="7fec057876c445f9b919ed9bb8bfd821";String Secret="afa8b6fdced65f379c13e371c9967721";Token t=getSnapUrl(AppKey, Secret);System.out.println(t.getData().getAccessToken());System.out.println(t.getData().getExpireTime());}public static Token getSnapUrl(String AppKey,String Secret){// 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)CloseableHttpClient httpClient = HttpClientBuilder.create().build();// 封装参数StringBuffer params = new StringBuffer();params.append("appKey="+ AppKey);params.append("&");params.append("appSecret="+Secret);// 创建Post请求HttpPost httpPost = new HttpPost("https://open.ys7.com/api/lapp/token/get" + "?" + params);// 设置ContentType(注:如果只是传普通参数的话,ContentType不一定非要用application/json)httpPost.setHeader("Content-Type", "application/json;charset=utf8");// 响应模型CloseableHttpResponse response = null;try {// 由客户端执行(发送)Post请求response = httpClient.execute(httpPost);// 从响应模型中获取响应实体HttpEntity responseEntity = response.getEntity();if (responseEntity != null) {//返回数据String responseString = EntityUtils.toString(responseEntity);//生成实体类(responseString就可以看到数据的)JSONObject jsonObject = JSONObject.fromObject(responseString);Token t = (Token) JSONObject.toBean(jsonObject, Token.class);return t;}} catch (ClientProtocolException e) {e.printStackTrace();} catch (ParseException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {// 释放资源if (httpClient != null) {httpClient.close();}if (response != null) {response.close();}} catch (IOException e) {e.printStackTrace();}}return null;}
}

2.3获取获取设备状态信息

package com.smartfarm.base.monitor.core.util;import java.io.IOException;import net.sf.json.JSONObject;import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;/*** 获取设备状态信息* @author lyq**/
public class SnapUtil {public static void main(String[] args) {//我自己的密匙String AppKey="7fec057876c445f9b919ed9bb8bfd821";String Secret="afa8b6fdced65f379c13e371c9967721";String accessToken="at.60haqycfbqoizem15csgx1q21lmn85q6-4jmaids8bm-130mqh2-iamhp5emw";//获取登录的accessToken//String accessToken=GetTokenUtil.getSnapUrl(AppKey,Secret).getData().getAccessToken();int channel=1;String deviceSerial="C16499527";System.out.println(stateInformation(accessToken, deviceSerial,channel));}/**  获取设备状态信息* accessToken String  授权过程获取的access_token Y* deviceSerial String  设备序列号,存在英文字母的设备序列号,字母需为大写    Y* channel  int 通道号,默认为1    N* @param accessToken* @param deviceSerial* @return*/public static String stateInformation(String accessToken,String deviceSerial,int channel){// 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)CloseableHttpClient httpClient = HttpClientBuilder.create().build();// 封装参数StringBuffer params = new StringBuffer();params.append("accessToken="+ accessToken);params.append("&");params.append("deviceSerial="+deviceSerial);params.append("&");params.append("channel="+channel);// 创建Post请求HttpPost httpPost = new HttpPost("https://open.ys7.com/api/lapp/device/status/get" + "?" + params);// 设置ContentType(注:如果只是传普通参数的话,ContentType不一定非要用application/json)httpPost.setHeader("Content-Type", "application/json;charset=utf8");// 响应模型CloseableHttpResponse response = null;try {// 由客户端执行(发送)Post请求response = httpClient.execute(httpPost);// 从响应模型中获取响应实体HttpEntity responseEntity = response.getEntity();if (responseEntity != null) {String responseString = EntityUtils.toString(responseEntity);JSONObject jsonObject = JSONObject.fromObject(responseString);Picture p = (Picture) JSONObject.toBean(jsonObject, Picture.class);return p.getCode();}} catch (ClientProtocolException e) {e.printStackTrace();} catch (ParseException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {// 释放资源if (httpClient != null) {httpClient.close();}if (response != null) {response.close();}} catch (IOException e) {e.printStackTrace();}}return null;}}

现在后台就可以操控设备了

如果有帮助就关注一下,没有帮助的就不强求,
滴水之恩,当涌泉相报,那是你没有绝望,
跳槽工作了3个星期了,星期一到星期五加班到7点,回到家9点
星期六星期日,不是自己就是学新的东西,
能不裸辞,就尽量不要裸辞了,裸辞之后,可能还没有上一家好,
我在以前的公司6点准时走 哈哈哈
加油干!!! 死刚Java

物联网萤石云获取登录的accessToken工具类相关推荐

  1. 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现

    实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...

  2. 阿里云视频点播-->>>阿里云媒资上传工具类及配置

    阿里云媒资上传 官网: 介绍 1.阿里云视频点播 2.视频服务流程 三,测试类中编写代码 四,媒资管理管理配置-存储管理 五,开始编写我们的JAVA代码 1.application.yml 2.配置类 ...

  3. 阿里云oss文件上传工具类

    阿里云oss文件上传工具类 阿里云oss 阿里云oss 导入文件阿里云oss的maven依赖 <!-- 阿里云oss依赖 --><dependency><groupId& ...

  4. java获取properties属性_java工具类中获取properties文件的属性

    记录获取properties文件属性的工具类 package org.jasig.cas.mylogin.util; import org.slf4j.Logger; import org.slf4j ...

  5. 操作SD卡,获取文件目录及文件工具类Android,listView

    操作SD卡,获取文件目录及文件工具类Android 1.获取文件目录及文件工具类: DirectoryInfo  FileScan 1.1 DirectoryInfo: package com.gls ...

  6. Java 获取IP地址的工具类

    package cn.tolin.springboot.lab1.util;import javax.servlet.http.HttpServletRequest; import java.net. ...

  7. 通过生日获取年龄+生肖+星座工具类

    通过生日获取年龄+生肖+星座工具类

  8. 百度云内容审核api调用工具类

    1.引入maven依赖 2. package com.ck.common.aip;import com.alibaba.fastjson.JSONObject; import com.baidubce ...

  9. Java中阿里云OSS文件上传工具类

    阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...

最新文章

  1. 一图读懂丨2019新型冠状病毒,你需要知道什么?
  2. ITK:在傅立叶域中过滤图像
  3. Spring Boot Actuator:自定义端点,其顶部具有MVC层
  4. [JSConf EU 2018] 大脑控制 Javascript
  5. python正则匹配找到所有的浮点数_Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配...
  6. UOJ #34. 多项式乘法
  7. 字符串匹配BF/RK/BM/KMP算法
  8. Centos 7 RabbitMQ + Haproxy 集群高可用部署
  9. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期下跌6.07%
  10. 清除SQL SERVER日志
  11. 周鸿祎:通过免费吸引用户不是万能 还需回归商业本质
  12. IDEA中新建ehcache.xml文件报错
  13. Jquery checkbox选中问题
  14. 北京计算机学校招生要求,北京小升初 16区采取电脑随机录取的入学途径及规则 2021家长一定要看...
  15. 三分钟破解奇迹热门外挂
  16. 固态硬盘的计算机需要进行磁盘碎片整理吗,浅析为什么固态硬盘不需要磁盘碎片整理...
  17. Your task is to Calculate a + b.
  18. 女生转行做什么工作好?想要转行互联网可以选择哪些方向?
  19. 一个生日微信小程序 生日动画_生日当天发朋友圈的文案 生日快乐微信小句子...
  20. 程序员955不加班名单

热门文章

  1. Cardboard -VR全景浏览
  2. 如何使用微信小程序制作banner轮播图?
  3. linux考出光盘数据,电脑如何复制数据到光盘|电脑在光盘中存储数据的方法
  4. BI神器Power Query(10)-- PQ从文件夹导入数据
  5. Codeforces Round #439 (Div. 2) A. The Artful Expedient
  6. 机器视觉系列(五)——镜头部分
  7. python打开文件,路径存在'\t'被转义
  8. blast java_Blast在windows下的使用过程
  9. halcon之测量和拟合
  10. Mac下iTerm2美化