微博短链接生成 php,新浪微博API生成短链接
通过新浪微博API,生成短链接,支持一次性转多个长链接
什么是短链接
短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。
短链接服务
国内各大微博都推出了自己的短链接服务。例如新浪微博、腾讯微博等。
为什么选用新浪微博API
新浪微博短链接API是开放的
新浪微博短链接API不需要用户登录
文档查询链接
使用方法
拿到自己的AppKey后,替换类的成员属性$appKey的值即可,如下这样的,$shortUrl是API请求地址
// APPkey,我在网上找的(https://fengmk2.com/blog/appkey.html),可以自己申请
protected $appKey = '569452181';
// 转短连接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
其他的,基本不需要配置,直接实例化类ShortLink,然后调用方法getShortUrl即可,需要说明的是长链接URL数组$longUrl里的值可以传多个值
当然了,为了方便,我写为一个类,可以根据自己的需要,进行调整,满足自己的需求即可。
源码
/**
* 通过新浪微博API,生成短链接,支持一次性转多个长链接
* Class shortClass
* @time 2018-08-14
* @author gxcuizy
*/
Class ShortLink {
// APPkey,我在网上找的(https://fengmk2.com/blog/appkey.html),可以自己申请
protected $appKey = '569452181';
// 转短连接API地址
protected $shortUrl = 'https://api.weibo.com/2/short_url/shorten.json?';
/**
* 生成短链接
* @param array $longUrl 长链接数组
* @return array 返回短连接数据
*/
public function getShortUrl($longUrl = []) {
$code = true;
$msg = '请求成功!';
$result = [];
// 长链接数组为空,不处理
if (empty($longUrl)) {
$code = false;
$msg = '长链接数据不能为空';
return ['code' => $code, 'msg' => $msg, 'result' => $result];
}
// 拼接请求URL
$longUrlStr = $this->_getLongUrl($longUrl);
$shortUrl = $this->shortUrl;
$appKey = $this->appKey;
$param = 'source=' . $appKey . '&' . $longUrlStr;
$curlUrl = $shortUrl . $param;
// 发送CURL请求
$result = $this->_sendCurl($curlUrl);
return ['code' => $code, 'msg' => $msg, 'result' => $result];
}
/**
* 获取请求URL字符串
* @param array $longUrl 长链接数组
* @return string 长链接URL字符串
*/
private function _getLongUrl($longUrl = []) {
$str = '';
foreach ($longUrl as $url) {
$str .= ('url_long=' . $url . '&');
}
$newStr = substr($str, 0, strlen($str) - 1);
return $newStr;
}
/**
* 发送CURL请求(GET)
* @param string $curlUrl 请求地址
* @return array 返回信息
*/
private function _sendCurl($curlUrl) {
// 初始化
$ch = curl_init();
// 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 执行并获取HTML文档内容
$output = curl_exec($ch);
// 释放curl句柄
curl_close($ch);
// Json数据转为数组
$result = json_decode($output, true);
return $result;
}
}
// 实例化对象
$shortObj = new ShortLink();
// 多个连接可以直接放到数组中,类似$longUrl = ['url1', 'url2', ……]
$longUrl = ['http://blog.y0701.com/index.html'];
// 开始转长链接为短链接
$result = $shortObj->getShortUrl($longUrl);
print_r($result);
结束语
上面说到的网上查找得到的一些AppKey,因为来源不明,所以,不建议用于生产环境,需要用于生产环境的话,建议直接在新浪微博开发者平台里创建自己的应用就行。
微博短链接生成 php,新浪微博API生成短链接相关推荐
- 基于新浪微博API生成短链接的几款在线工具
需求背景 很多人在营销推广中都要使用到短链接,新浪短链接则是大家最先接触到的,服务也很稳定,所以需求量也很大.据不完全统计,大概每天有几十亿条t.cn短链接生成.如此巨大的数量,难道都是先登录新浪微博 ...
- UTM参数是什么?如何批量生成带UTM参数的短链接?
什么是UTM参数? 为了更好的追踪&量化不同的渠道带来的流量,我们经常需要生成各个渠道推广的链接带utm参数的链接,来数字化不同去渠道的引流效果.UTM是"Urchin Tracki ...
- java 新浪短链接_java生成短连接(调用新浪微博api生成)
java生成短连接 主要利用新浪微博提供的api生成 import java.io.IOException; import java.util.UUID; import com.alibaba.fas ...
- 如何使用ASP.NET Core Web API实现短链接服务
前言 在前面的文章中,我们介绍了hashids.net,可以将数值型Id加密成无意义的字符串. 今天,我们来利用这一特点,实现短链接服务. 原理 短链接,顾名思义就是在形式上比较短的链接网址.借助短链 ...
- php调用新浪短链接API转短链接
调用新浪短链api,长链接可转为http://t.cn/RX7mLZh这种t.cn短链,同时可转回原链接! //新浪的App_Key const SINAAPPKEY = '291**161014'; ...
- 短域名生成java_腾讯短链接url生成接口/腾讯短网址在线生成/新浪微博短链接生成器的分享...
在通常情况下,URL是由系统生成的,通常包括URI路径,多个查询参数,可以对参数进行加密和解密. 当人们要分享某个URL,比如短信,邮件,社交媒体,这就需要短URL. 而短网址,顾名思义就是在长度上比 ...
- 利用新浪API批量生成t.cn 短链接的接口有哪些?
新浪提供了长链接转为短链接的API,可以把长链接转为t.cn/xxx这种格式的短链接.短链接对于一些商家来说使用价值非常大,故整理了6个较为好用的t.cn短链接批量生成接口. 1.快鸟短网址 随着移动 ...
- php短链接生成,短链接api
话不多说,直接上干货,http://www.m58.link/ 免费提供直接转和api转,还有个性化跳转,密码跳转等,简直不要太好用. 1.直接转: 进网页直接输入长网址,然后点shorten直接转 ...
- MurmurHash 算法生成短链接
生成短链接 参考 短链接设计和思考_新猿一马的博客-CSDN博客_短连接设计 https://mp.weixin.qq.com/s/dN7XZbyz5vyeJO2sd6tudA 网址大家都知道,很长的 ...
最新文章
- iptables命令_理解 Linux 下的 Netfilter/iptables
- 悖论:早期互联网项目,是否需要技术含量?
- java调用oracle存储过程_做一点,记一点 ~ Java调用Oracle存储过程
- 容器技术之kubectl常用命令
- vs2019能写Java吗_Visual studio2019打包程序过程
- 【CAM应用】谈CAM软件在实际生产中的应用举例
- jquery $.get和$.post设置请求超时error处理
- [转帖]达梦数据库(DM6)和ORACLE 10g的异同点
- 推荐系统-猜你喜欢设计
- vt功能对计算机有影响吗,电脑开vt有什么坏处
- 斯坦福的著名小兔子模型的点云数据_基于正交投影的点云局部特征描述详解
- 《关于我横扫一线厂的那些面经》拼多多Java岗(附答案)
- 【转载】《Real-Time Rendering 3rd》 提炼总结】(二) 第二章 · 图形渲染管线 The Graphics Rendering Pipeline
- java-php-python-晨光文具店进销存系统设计与开发计算机毕业设计
- 2020年文档相似性算法:初学者教程
- linux下最好用的安卓模拟器!
- linux mint安装sbt及环境配置
- 根据word自动生成html代码文件
- 眼图测试(信号完整性测试)-嵌入式多媒体卡eMMC存储芯片
- 常用方法(图片逆光度、傅里叶变换、寻找波峰波谷、计算俯仰/侧脸)
热门文章
- RMAN-20005: target database name is ambiguous
- 【STM32F407的DSP教程】第22章 DSP矩阵运算-放缩,乘法和转置矩阵
- java applet 打印_applet 打印常见问题与解决方法
- Android NDK jni开发,适当的给Android 代码加密
- html5 web speech,Web Speech
- Python基于pyzbar、opencv、pyqt5库,实现二维码识别 gui 应用程序开发
- dpdk pmd驱动初始化
- libuv编译Linux,OS X下 Android NDK 编译 libuv
- springboot项目导入idea中环境配置相关问题解决
- 地面分割:Fast Segmentation of 3D Point Clouds for Ground Vehicles