代码拉取完成,页面将自动刷新
同步操作将从 hydrid/cnblogs-sdk 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php
class CNBlogsSDK
{
/**
* 公钥
* @var mixed
*/
private $public_key;
/**
*
* @var string
*/
public $client_id = '';
/**
*
* @var string
*/
public $client_secret = '';
/**
*
* @var string
*/
public $authorization;
/**
*
* @var sring
*/
public $host = 'https://api.cnblogs.com';
/**
* 加密后的用户名
* @var strig
*/
public $username = '';
/**
* 加密后的密码
* @var string
*/
public $password = '';
/**
*
* @param mixed $public_key 公钥
* @param string $client_id client ID
* @param sring $client_secret client secret
*/
public function __construct($public_key, $client_id, $client_secret)
{
//打开证书
$pu_key = openssl_pkey_get_public($public_key);
if (false === $pu_key) {
return '公钥错误!';
}
$this->public_key = $pu_key;
$this->client_id = $client_id;
$this->client_secret = $client_secret;
$this->authorization = base64_encode($this->client_id . ':' . $this->client_secret);
}
/**
* 公钥加密数据
* @param string $data 加密的数据
* @param mixed $public_key 公钥
* @return boolean
*/
public function rsaEncrypt($data)
{
//加密数据
$encrypt_data = '';
$rs = openssl_public_encrypt($data, $encrypt_data, $this->public_key, OPENSSL_PKCS1_PADDING);
if (false === $rs) {
return false;
}
return $encrypt_data;
}
/**
* 设置用户名
* @param string $username 用户名
* @return string
*/
public function setUsername($username)
{
$rs = $this->rsaEncrypt($username);
if (false === $rs) {
return '用户名设置失败!';
}
$this->username = $rs;
}
/**
* 设置密码
* @param string $password 密码
* @return string
*/
public function setPassword($password)
{
$rs = $this->rsaEncrypt($password);
if (false === $rs) {
return '密码设置失败!';
}
$this->password = $rs;
}
/**
* 获取token
*/
public function getToken($username, $password)
{
$this->setUsername($username);
$this->setPassword($password);
require_once 'httpclient.php';
$http = new HttpClient($this->host);
$http->setHeader("Content-Type", "application/x-www-form-urlencoded");
$http->setHeader("Authorization", "Basic " . $this->authorization);
$status_code = $http->post("/token", [
"username" => base64_encode($this->username),
"password" => base64_encode($this->password),
'grant_type' => 'password'
]);
if ($status_code != 200) {
return false;
}
$response = json_decode($http->getBody(), true);
if ($response == false) {
return false;
}
return $response;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。