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,新建一个名为WeiBoWeb项目,新建一个cn.json.weibopackage,在该包下新建一个名为WeiBojava文件。具体代码如下:

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


猜你喜欢

转载自blog.csdn.net/qq_38277570/article/details/80511376