Share是一个非常优秀的第三方微博客户端,由于官方的限制,虽然已经下架了,但是最后一个版本的功能还是可以满足大部分需求。然而一些高级特性需要激活后才能使用,官方的激活服务器已经不能使用了,只能自建激活服务。以下教程仅供学习交流,如有侵权,请联系本人删除。
通过手机抓包可以看到,Share访问的激活api是http协议,并不是https协议,这样一来自建一个激活后端,返回所需的响应,然后直接把api.yuhengye.com
指向该后端服务的ip即可。
一、使用flask自建授权服务,返回响应。
官方的响应并没有加密,响应数据格式如下:其中code
为激活码,activated
为是否激活,timestamp
为有效期时间戳。
{"code":0,"data":{"code":"鸡仔YYDS","activated":true,"orderId":"","activeCount":0,"timestamp":32472115200000,"s_expire":false}}
在有公网ip的vps或者内网主机中,创建一个flask应用,路由设置为/activecode/bind
,返回json格式的响应。
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/activecode/bind', methods=['GET'])
def get_data():
response = {
"code": 0,
"data": {
"code": "鸡仔YYDS",
"activated": True,
"orderId": "",
"activeCount": 0,
"timestamp": 32472115200000,
"s_expire": False
}
}
return jsonify(response)
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)
输入python share-activate.py
,会启动授权认证后端服务
二、使用nginx反向代理到flask服务
创建一个nginx配置文件api.yuhengye.com.conf
,将80端口反向代理到5000端口,内容如下。
server {
listen 80;
server_name api.yuhengye.com; # 你的域名
location / {
proxy_pass http://127.0.0.1:5000; # 代理到本地服务
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
一些指令如下:
❯ nano /etc/nginx/sites-available/api.yuhengye.com.conf
❯ ln -s /etc/nginx/sites-available/api.yuhengye.com.conf /etc/nginx/sites-enabled/
❯ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
❯ nginx -s reload
三、设置本地dns,指定api.yuhengye.com
的ip地址
在本地路由器中的DHCP/DNS中,自定义api.yuhengye.com
的ip为vps的公网ip或者内网主机的ip,报存并应用。
在本地电脑终端输入curl http://api.yuhengye.com/activecode/bind
,返回如下响应即测试成功:
四、手机app激活应用
在手机share应用中,输入如下格式的激活码:11111111-2222-3333-4444-555555555555
,内容其实并不重要,满足标准的UUID格式即可:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
(8-4-4-4-12)。这样就能激活share高级版啦~