新浪短网址接口源码,并使用PHP模拟登陆来自动更新

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 新浪短网址接口源码,并使用PHP模拟登陆来自动更新

title: 新浪短网址接口源码,并使用PHP模拟登陆来自动更新
date: 2020-05-17 09:55:54.0
updated: 2020-09-27 21:55:23.0
url: https://www.ufec.cn/archives/php-weibo-login.html
thumbnail: https://ghproxy.com/https://raw.githubusercontent.com/ufec/picGoImg/main/blog/2020/05/timg-c31ed44661e942cba0b35f1770034c06.webp
categories:

  • 代码

tags:

  • PHP
  • 新浪短网址
  • 爬虫开发
  • NodeJs

实现思路

上次发过的,通过分享链接来生成短链接,后来微博又下线了这个功能,微博还有好多地方都可以生成,发微博、评论、发私信等等都可以,网上也有通过发微博来实现的,这里我用的是发私信(因为私信接口返回的是 json 数据,可以偷懒,而且速度也要快一点)

项目地址

https://github.com/ufec/shortUrlApi
使用方法更新说明里面已经写好了,就不再赘述。可以使用 PHP-MongoDB 来构建对应索引数据库,这样简单清晰的结构建议用 MongoDB,MySQL 的话在这样的场景性能可能不如 MongoDB(个人见解)

模拟登陆

这里只讲一下思路,PHP 来实现密码加密我也还没弄出来,我用的是的 nodejs 做服务端来加密,php 直接获取即可,无需跳转。Python 的确很好实现,三行代码就搞定了加密过程,看个人选择吧,我是觉得就这一个需求,实在用不着安装 Python 和那几个包,

首先预登陆

主要接口为:

https://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&rsakt=mod&client=ssologin.js(v1.4.19)&su=base64后的账号&_=13位时间戳

从这里我们可以获取公钥、服务器时间、nonce、rsakv 这些必要参数,前三个与密码明文作为 rsa 加密参数,结果作为登陆的 sp 参数的值,POST 参数:

$postData = [
            "entry"         => "weibo",
            "gateway"    =>    "1",
            "from"         => "",
            "savestate"  => "7",
            "qrcode_flag"=>    "false",
            "useticket"     => "1",
            "vsnf"         => "1",
            "su"         => base64_encode(用户名),
            "service"     => "miniblog",
            "servertime" => '这里填入servertime',
            "nonce"         => '这里填入nonce',
            "pwencode"     => "rsa2",
            "rsakv"         => '这里填rsakv',
            "sp"         => '加密后的密码',
            "sr"         => "1536*864",
            "encoding"   => "UTF-8",
            "prelt"         => "560",
            "url"         => "https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack",
            "returntype" => "TEXT",
];

接口地址:

https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.19)

这里指出一点,returntype 值填 TEXT 会更好,返回 json 数据,默认的是 html,要正则取 ticket,
登录成功后,需要取出 ticket,来做下一步获取通行证的 POST 参数:

$lastData = [
            "ticket"       => "上个过程获取的ticket",
            "ssosavestate" => time(),
            "callback"     => "sinaSSOController.doCrossDomainCallBack",
            "scriptId"     => "ssoscript0",
            "client"       => "ssologin.js(v1.4.19)",
            "_"            => (time() * 1000)
];

接口地址:

https://passport.weibo.com/wbsso/login

即可获取登陆 cookie,虽然我还没写出 php 的加密过程,但我相信肯定能用 PHP 来写,毕竟服务端用的 PHP 解密
login.webp
同样老问题,在服务器上模拟登陆,会遇到验证码,Python 可以直接保存二维码等待用户输入,但在服务器上这样不现实,可以直接调用图片识别接口来操作即可。

目录
相关文章
|
1月前
|
JavaScript PHP 数据安全/隐私保护
乞丐在线要饭系统PHP网站源码
在这个物欲横流、竞争激烈的时代,有时候我们真心觉得钱来得太不容易,甚至连最基本的生存都成了负担。于是,我们想出了一个特别“独特”的点子:用利息砸我,给我点施舍!
71 1
|
3月前
|
Java PHP 数据安全/隐私保护
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
本文详细介绍了PHP面向对象编程的一系列核心概念和用法,包括构造函数、析构函数、继承、方法重写、访问控制、接口、抽象类、静态成员、final关键字、以及this、self、parent这三个关键字的异同和作用。通过具体示例代码,展示了如何在PHP中使用这些面向对象的特性,以及它们在实际开发中的应用。
PHP 面向对象,构造函数,析构函数,继承,方法的重写,接口抽象类,static,final,this,parent,self的异同和作用
|
2月前
|
前端开发 JavaScript 小程序
前端uni开发后端用PHP的圈子系统该 如何做源码?
圈子系统系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发。系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP
|
2月前
|
前端开发 JavaScript PHP
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
|
3月前
|
PHP
PHP全自动采集在线高清壁纸网站源码
PHP全自动采集在线高清壁纸网站源码,PHP全自动采集在线高清壁纸网站源码,一款开源壁纸源码,无需安装。集合360壁纸,百度壁纸,必应壁纸,简单方便。每天自动采集,自动更新,非常不错,php源码 网站源码 免费源码 自动采集。
60 3
|
3月前
|
PHP 数据库
2024表白墙PHP网站源码
2024表白墙PHP网站源码
48 1
|
4月前
|
安全 BI PHP
php前后端分离,仓储模式r的医院不良事件上报系统源码
此医院安全不良事件管理系统采用前后端分离架构(PHP+Laravel8+Vue2+Element),实现事件上报至解决的全流程管理。系统支持结构化上报、数据自动引用、智能流程及预警,配备质控分析工具生成各类报表。通过PDCA闭环管理,确保事件得到有效处置并预防再发,同时提供便捷上报通道,优化上报效率。
php前后端分离,仓储模式r的医院不良事件上报系统源码
|
4月前
|
前端开发 关系型数据库 MySQL
最新黑名单查询录入系统PHP网站源码
最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很好的预防数据库注入,当然如果你想要测试这个防注入的你也可以尝试一下 PHP版本70+ 数据库Mysql 5.6 上传程序访问 http://你的域名/install 安装
106 0
|
4月前
|
网络协议 API PHP
PhalApi:在宝塔一键安装部署PHP开源接口框架的教程
要在宝塔面板上一键安装部署PhalApi开源接口框架,首先进入宝塔软件商店,切换到“一键部署”选项,搜索“phalapi”并点击“一键部署”。安装时需填写接口域名、数据库名及密码,提交后等待安装完成。安装成功后可在宝塔面板中查看新站点和源代码目录,并通过DNS解析设置访问接口域名,如`http://myapi.phalapi.net/`。默认开启的调试模式便于测试,可通过修改`config/sys.php`中的`debug`值为`false`关闭。最后,在源代码中开发自己的PHP接口,PhalApi会自动生成在线接口文档,方便后续调用与维护。更多详细教程可参考官方文档。
|
5月前
|
数据库
基于PHP+MYSQL开发制作的趣味测试网站源码
基于PHP+MYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分, 自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息, 没设置的话第一次查询缘分都是非常好的 95-99,第二次查就比较差 , 所以如果要你女朋友查询你的名字觉得很好 那就得是她第一反应是查和你的缘分, 如果查的是别人,那不好意思,第二个可能是你。
69 3