Java开发微博粉丝服务(1)——环境的搭建,开发接入与URL有效性验证
第一部分——环境的搭建,开发接入与URL有效性验证
一、发环境的搭建
最近貌似Sunny-Ngrok无能正常使用,由于时间关系就转另外一个内网穿透,本次并没有使用ngrok转向使用frp
Frp比ngrok更加方便,由于本人使用的是Linux系统,本次开发环境的搭建就以Linux为主,Windows应该类似。
1、客户端下载
选择相对应的版本进行下载
本人使用的是Linux 64位版本
注意:386是32位的版本
客户端只用下载frpc和frpc.ini,其中后者是配置文件
2、客户端的配置(frpc.ini)
Linux客户端的配置
Linux下使用命令修改配置文件:
vim frpc.ini
配置文件内容如下:
1. [common]
2. server_addr = frp2.chuantou.org
3. server_port = 7000
4. privilege_token = www.xxorg.com
5. protocol = kcp
6. user = worldyao
7.
8. [xxorg]
9. type = http
10. local_ip = 127.0.0.1
11. local_port = 8080
12. subdomain = worldyao
13.
14. [tcp3389]
15. type = tcp
16. local_ip = 127.0.0.1
17. local_port = 3389
18. remote_port = 53389
其中修改的部分是:
user这里随便填写
user = worldyao
这里是端口号,此处我用的是Tomcat的默认端口号8080,该个配置文件的默认端口号是80
local_port = 8080
这个是前缀,设置这个之后你的访问地址将是:http://worldyao.frp2.chuantou.org
subdomain = worldyao
Windows客户端的配置
frpc.ini的参数设置同Linux一样仅仅是启动方式不一样
3、启动服务
Linux下使用命令:
sudo ./frpc -c ./frpc.ini
Windows下控制台
cmd命令
frpc.exe -c frpc.ini
PowerShell命令
.\frpc.exe -c frpc.ini
二、开发的接入和验证URL的有效性
粉丝服务平台开发模式接入流程
第一步:申请消息接口
第二步:验证URL有效性
第三步:获取AccessToken
第一步:申请消息接口
在微博开放平台中新建粉丝服务应用
创建应用完成后-->找到该应用-->完善应用(可以不用审核)
可以看到粉丝服务平台的
App Key和App Secret,记录这两个参数
第二步:验证URL有效性
在开发者首次使用事件推送服务时,需要先通过一次校验来和微博服务器建立首次连接,具体来说:
开发者提交信息后,微博消息服务器将发送GET请求到填写的URL上,GET请求携带四个参数:
校验参数字段 |
字段类型 |
字段说明 |
signature |
string |
微博加密签名,signature结合了开发者的appsecret、和请求中的timestamp参数,nonce参数 |
timestamp |
string |
时间戳 |
nonce |
string |
随机数 |
echostr |
string |
随机字符串 |
开发者收到请求后,首先通过加密后的signature参数来校验GET请求的真实性,如果确认此次GET请求来自微博服务器,原样返回echostr参数内容就可以成功建立首次连接,否则连接失败。
1、打开eclipse,新建一个名为WeiBo的Web项目,新建一个cn.json.weibo的package,在该包下新建一个名为WeiBo的java文件。具体代码如下:
①WeiBo.java
package cn.json.weibo;public class WeiBo extends HttpServlet{private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {String signature = request.getParameter("signature"); // 微信加密签名 String timestamp = request.getParameter("timestamp"); // 时间戳 String nonce = request.getParameter("nonce"); // 随机数 String echostr = request.getParameter("echostr"); // 随机字符串PrintWriter out = response.getWriter();// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败if (Check.checkSignature(signature, timestamp, nonce)) {out.print(echostr);}out.close();}/** * 处理微博服务器发来的消息 */ public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}
}
②、配置Servlet(修改web.xml)
在web.xml文件加入以下代码
<servlet><servlet-name>WeiBo</servlet-name><servlet-class>cn.json.weibo.WeiBo</servlet-class></servlet><servlet-mapping><servlet-name>WeiBo</servlet-name><url-pattern>/WeiBo</url-pattern> </servlet-mapping>
③、项目树图
④、部署运行,发布
④、服务器的配置
URL填写:服务器地址+项目名称+调用的Servlet
AppKey:从粉丝服务平台应用获取的AppKey
Java开发微博粉丝服务(1)——环境的搭建,开发接入与URL有效性验证相关推荐
- Java开发微博粉丝服务(3)——自定义菜单的设定
第三部分--自定义菜单的设定 文档编写:董尧 日期:2018.6.5 一.自定义菜单创建接口 二.自定义菜单查询接口 一.自定义菜单创建接口 1.请求说明 请求的URL地址 https://m.api ...
- 微博粉丝服务---“公众号”开发
微博粉丝服务是参考微信公众号的形式进行的新型交流平台,但是相关资源却比较少,而微信端的后台开发资源较多,因此写了这一篇博客,为自己以后,以及需要的人提供有效的参考. 1.创建粉丝应用 微博" ...
- Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境
原文:Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同, ...
- 【Java开发语言 01】第一章 Java语言概述(基础常识+Java语言概述+Java程序运行机制及运行过程+Java语言环境的搭建+开发体验hello world+错误:编码GBK的不可映射字符)
java入门-第一章Java语言概述 1基础常识 软件开发 人机交互方式 常用的DOS命令(win系统,有一些直接通过命令执行的) 2 Java语言概述 什么是计算机语言 关于面向对象和面向过程 Ja ...
- jeston nano开发板 在ubuntu18.04环境下搭建的ROS和arduino小车
一.准备安装Ubuntu系统 (在vmware上安装)#方便后面的调试 首先,需要我们去官网下载镜像文件,但是由于官方的服务器搭建在境外,因此我们更倾向于使用国内镜像进行下载,比如清华大学镜像,一般来 ...
- 第2章搭建CRM项目开发环境(搭建开发环境)
2.2搭建开发环境 2.2.1创建crm项目 使用IDEA创建Empty Project,作为项目的工作空间 2.2.2创建crm模块 创建maven类型的模块,作为开发工程 2.2.3为项目添加me ...
- 微服务基本环境的搭建
order-payment spring-cloud 环境的搭建 订单模块 服务消费者 支付模块 服务提供者 payment, CommonOrder公共抽取 这里使用maven聚合的方式构建微服务. ...
- ESP32实用教程(一)开发软件的选择及环境的搭建
1.ESP32介绍: ESP32是乐鑫信息科技(以下简称乐鑫)推出的一块WIFI芯片.ESP32 集成了天线开关.射频 balun.功率放大器.低噪放大器.过滤器和电源管理模块,整个解决方案占用了最少 ...
- java maven 开发环境_Maven 搭建开发环境
下载解压: $ curl -O http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bi ...
最新文章
- Python核心模块——urllib模块
- 学习SPI的一些疑惑
- itextsharp php,C#_C#使用iTextSharp设置PDF所有页面背景图功能实例,本文实例讲述了C#使用iTextSharp - phpStudy...
- ORACLE物理DG日常管理
- realloc函_[转载]realloc函数的使用及注意事项(转)
- CPU怎么认识代码的?
- 高等数学(七)- 多元函数微分学(2)【多元函数极值问题】
- Huffman-哈夫曼编码算法详解
- java创建一个自己的类库_建立并使用自己的类库
- 计算机应用程序没声音怎么办,电脑没声音怎么办
- 各互联网技术领域pdf图书合集(百度网盘)
- (HDU-1564)Play a game(博弈论)
- 做项目遇到的一些CSS问题
- 实现windows与ubuntu的之间的复制与粘贴
- Python爬取美桌网美女图片
- GitHub个人Blog完全攻略
- 解决mysqld: [ERROR] Found option without preceding group in
- Leetcode_154_Find Minimum in Rotated Sorted Array
- 美团后台开发笔试-数字字符
- Moveit!入门教程-配置助手