Centos7

CentOS7安装Python3的方法CentOS7搭建L2TP服务端一键脚本CentOS7使用CertBot工具获取LetSencrypt泛域名HTTPS证书

Git

GIT删除仓库的历史提交记录脚本示例GIT进行代码量统计和贡献统计

HTTP

HTTP关于HEADER的详细解释HTTP协议对URI长度POST数据长度及COOKIE长度限制说明HTTP关于Code状态码的详细解释

JavaScript

JavaScript下的RSA对称加密DEMOJavaScript解析并遍历Excel示例代码JavaScript调用语音合成Speech Synthesis API使用ElementUI配合API数据快速渲染合并表格

Linux

Linux 信号说明列表说明Linux利用CronTab定时执行ThinkPHP命令行模式

MySQL

MySQL字符串截取MySQL腾讯云数据库导出备份到本地服务器导入MySQL设计与使用规范MySQL在5.7及以上版本中的ONLY_FULL_GROUP_BY问题处理方案

Nginx

Nginx反向代理NodeJS实现WSS协议Nginx反向代理中的Host参数传递遇到的坑Nginx配置HTTPS与HTTP2.0Nginx负载均衡的lnmp环境初始化脚本Nginx图片递归代理服务器DEMO

NodeJS

NodeJS一些冷门但实用的npm包NodeJS使用Request模块实现CURLNodeJS使用express模块无法收到phpCurl的值NodeJS使用jimp和qrcode-reader识别解析二维码NodeJS实现UDP数据报套接字通讯NodeJS实现Websocket聊天室NodeJS实现串口通讯简单例程NodeJS实现微信协议登录NodeJS实现超级方便的Git自动发布WebhookNodeJS控制台简单表格打印NodeJS转码amr到mp3NWJS配置文件

Other

C#串口通信扫码枪数据读取支付宝Schema协议列表默克尔树基础算法示例博客的升级历程

PHP

PHP下RSA对称加密超长字符串分段加密DEMOPHP下phpMyAdmin数据字典美化代码PHP下的RSA对称加解密-根证书自签与签发子证书PHP使用root权限执行系统命令和切换到www用户PHP使用独占文件指针实现阻塞少量并发PHP多进程同时处理任务示例DEMO代码PHP大文件视频上传WebUploaderPHP实现Web方式发起一个超时任务的处理请求PHP实现二叉查找树的简单代码实现PHP实现微博登录简单代码PHP微信JSSDK开发DEMOPHP的坑XML转JSONPHP简单实现QQ登录代码PHP获取URL HTTP_HOST和SERVER_NAMEPHP获取上周、本周、上月、本月、本季度、上季度时间方法PHP获取真实IP之IP代理-IP伪造-真实IPPHP解密微信小程序手机号简单DEMOPHP高精度计算常用代码

Python

Python3使用Pool进程池实现多进程并发Python3使用jieba分词并生成WordCloud词云图Python3使用request进行CURL操作Python3实现WebhookPython3使用Selenium进行自动化测试手册

Wechat

微信公众号php环境无法获取POST值微信公众号网页跳转避免出现导航栏的小技巧
PHP实现微博登录简单代码
手机阅读

扫描二维码阅读文章
<?php
namespace app\thirdlogin\controller;
use app\thirdlogin\Thirdlogin;

//*******引用系统开始
use \think\Db;
use \think\View;
use \think\Controller;
use \think\Request;
use \think\Cookie;
//*******引用系统结束
class Weibo extends Thirdlogin {
    public $appid = "";
    public $appkey = "";
    public $oauthUrl = "https://api.weibo.com/oauth2/authorize";
    public $accesstokenUrl = "https://api.weibo.com/oauth2/access_token";
    public $callbackUrl="https://hamm.cn/thirdlogin/weibo/callback";
    public $loginUrl = "";
    public function __construct(){
        $this->loginUrl = $this->oauthUrl.'?client_id='.$this->appid."&response_type=code&scope=all&display=default&state=1&redirect_uri=".urlencode($this->callbackUrl);
    }
	public function index(){
	    $access_token = cookie("weibo_access_token");
	    $uid = cookie("weibo_uid");
	    if(empty($access_token)){
	        echo "<a href='/thirdlogin/weibo/login'>Login with Weibo</a>";
	    }else{
	        
	    }
	}
	public function publish(){
	    if(!input("?get.text")){
	        echo 'empty text!';die;
	    }
	    $keyword = input("get.text");
	    $keyword.="https://hamm.cn";
	    $access_token = cookie("weibo_access_token");
	    $uid = cookie("weibo_uid");
	    if(empty($access_token)){
	        $this->login();
	    }else{
	        $url = "https://api.weibo.com/2/statuses/share.json";
	        $data = "access_token=".$access_token."&status=".urlencode($keyword);
	        //echo $url;die;
	        $retObj = json_decode(httpPost($url,$data));
	        print_r($retObj);
	        echo "<br>";
	        echo "<a href='/thirdlogin/weibo/publish/?text=Hello World!'>publish weibo</a> <a href='/thirdlogin/weibo/login/'>relogin</a>";
	    }
	}
	public function login(){
	    cookie("weibo_access_token","");
	    $this->redirect($this->loginUrl);
	}
	public function callback(){
	    if(!input("?get.code")){
	        echo 'Code missing';
	    }else{
	        $code = input("get.code");
	        $url = $this->accesstokenUrl;
	        parse_str("grant_type=authorization_code&client_id=".$this->appid."&client_secret=".$this->appkey."&code=".$code."&redirect_uri=".urlencode($this->callbackUrl),$data);
	        $data ="grant_type=authorization_code&client_id=".$this->appid."&client_secret=".$this->appkey."&code=".$code."&redirect_uri=".urlencode($this->callbackUrl);
	        $retObj = json_decode(httpPost($url,$data));
            echo "Code:".$code."<br>";
            //print_r($retObj);
	        if (!property_exists($retObj,"access_token")){
	            echo "Code error , please <a href='/thirdlogin/weibo/login'>relogin</a>";
	        }else{
	            $access_token = $retObj->access_token;
	            $uid = $retObj->uid;
	            $url = "https://api.weibo.com/2/users/show.json?access_token=".$access_token."&uid=".$uid;
    	        //echo $url;die;
    	        $retObj = json_decode(httpGet($url));
    	        print_r($retObj);
    	        if(!property_exists($retObj,"id")){
    	            $this->login();
    	        }else{
    	            echo "Name:".$retObj->name."<br>";
    	            echo "description:".$retObj->description."<br>";
    	            echo "<img src='".$retObj->profile_image_url."' width='100px'/><br>";
    	            echo "Following:".$retObj->friends_count."<br>";
    	            echo "Fans:".$retObj->followers_count."<br>";
    	            echo "Weibo:".$retObj->statuses_count."<br>";
    	            echo "URL:".$retObj->profile_url."<br>";
    	            echo "domain:".$retObj->domain."<br>";
    	            echo "weihao:".$retObj->weihao."<br>";
    	        }
                
	        }
	    }
	}
    
}