基于PHP实现发微博动态代码实例


Posted in PHP onDecember 11, 2020

首先,肯定是注册成为开发者新浪微博开放平台

选择网站应用,填写一些基本信息

填完后在‘我的应用'中,会看到刚创建的应用信息,我们只是简单的测试一下,所以其他复杂的注册信息都不用填写,有这些就够了

很重要的一点,回调地址填写↓,回调地址是微博返回数据的地址,一定要填写完全一致

接下来,就是代码部分了:

随便创建一个页面,可以是一个a标签,或者自己找一个新浪的图标,随你喜欢

<a href='https://api.weibo.com/oauth2/authorize?client_id=2259374069&redirect_uri=http://www.huazi.com/good/login.php'>微博登录</a>

client_id 就是填写完应用信息后获得的App Key

redirect_uri 就是高级信息里面的回调地址

浏览器输入这个页面的地址,点击,会跳转到授权页面,点击授权并登陆

到回调地址页面,这是,回调地址会返回一个临时code,我们可以用code来换取token

<?php
header('content-type:text/html;charset=utf-8');
$code = $_GET['code'];  //获取code
$url = 'https://api.weibo.com/oauth2/access_token';  //获取token的地址
$client_id = '2259374069';  //App Key
$client_secret = '你的App Secret';  //App Secret
$grant_type = 'authorization_code';  //获取类型
$redirect_uri = 'http://www.huazi.com/good/login.php';  //回调地址
 
// echo $code;die;
 
 
//模拟登陆数据
  $vars['client_id'] = $client_id;
  $vars['client_secret'] = $client_secret;
  $vars['grant_type'] = $grant_type;
  $vars['code'] = $code;
  $vars['redirect_uri'] = $redirect_uri;
 
//使用CURL模拟登录信息
  $method_post = true;
  $ch =curl_init();
  $params[CURLOPT_URL] = $url;
  $params[CURLOPT_HEADER] = false;
  $params[CURLOPT_RETURNTRANSFER] = true;
  $params[CURLOPT_FOLLOWLOCATION] = true;
  $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0';
  $params[CURLOPT_SSL_VERIFYPEER] = false;
  $params[CURLOPT_SSL_VERIFYHOST] = false;
 
//格式化地址信息  
  $postfields = '';
  foreach ($vars as $key => $value) {
    $postfields .= urlencode($key) . '=' . urlencode($value) . '&';
  }
 
  $params[CURLOPT_POST] = true;
  $params[CURLOPT_POSTFIELDS] =$postfields;
 
  curl_setopt_array($ch, $params);
  $content = curl_exec($ch);
 
  //如果发生curl错误可以使用curl_error查看错误信息
  // var_dump(curl_error($ch));
  echo $content;
  // echo "<br>";
  // echo "<pre>";
  // print_r(json_decode($content,true));

至此,就获取到了我们需要的token信息,已经实现了新浪第三方登录

把token取出来,通过token可以操作很多东西,传不同的参数和URL就可以,我以发微博为例

<?php
header('content-type:text/html;charset=utf-8');
$url = 'https://api.weibo.com/2/statuses/update.json';
$access_token = '刚才获取的token';
$status = '我的测试微博'; //你要发的微博内容
 
//模拟登陆数据
 
  $vars['access_token'] = $access_token;
  $vars['status'] = $status;
 
  $method_post = true;
  $ch =curl_init();
  $params[CURLOPT_URL] = $url;
  $params[CURLOPT_HEADER] = false;
  $params[CURLOPT_RETURNTRANSFER] = true;
  $params[CURLOPT_FOLLOWLOCATION] = true;
  $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0';
  $params[CURLOPT_SSL_VERIFYPEER] = false;
  $params[CURLOPT_SSL_VERIFYHOST] = false;
  $postfields = '';
 
  foreach ($vars as $key => $value) {
    $postfields .= urlencode($key) . '=' . urlencode($value) . '&';
  }
 
  $params[CURLOPT_POST] = true;
  $params[CURLOPT_POSTFIELDS] =$postfields;
 
  curl_setopt_array($ch, $params);
  $content = curl_exec($ch);
 
  // var_dump(curl_error($ch));
  echo $content;
  echo "<br>";
  echo "<pre>";
  print_r(json_decode($content,true));

我们发现,这段代码下面的部分跟上段代码一样,没错,就是这样的

在浏览起输入这个页面的地址,再去看看你的微博,是不是成功发了一条微博?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php抓即时股票信息
Oct 09 PHP
解析phpstorm + xdebug 远程断点调试
Jun 20 PHP
php json_encode值中大括号与花括号区别
Sep 30 PHP
php define的第二个参数使用方法
Nov 04 PHP
php使用反射插入对象示例分享
Mar 11 PHP
php输出金字塔的2种实现方法
Dec 16 PHP
php中namespace use用法实例分析
Jan 22 PHP
php实现图片上传、剪切功能
May 07 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
PHP日志LOG类定义与用法示例
Sep 06 PHP
PHP isset empty函数相关面试题及解析
Dec 11 #PHP
PHP数组实际占用内存大小原理解析
Dec 11 #PHP
PHP基于ip2long实现IP转换整形
Dec 11 #PHP
PHP哈希表实现算法原理解析
Dec 11 #PHP
PHP解决高并发的优化方案实例
Dec 10 #PHP
WordPress伪静态规则设置代码实例
Dec 10 #PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 #PHP
You might like
用文本文件制作留言板提示(下)
2006/10/09 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
心扬JS分页函数代码
2010/09/10 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
python 重命名轴索引的方法
2018/11/10 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
python tkinter基本属性详解
2019/09/16 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
Python如何生成xml文件
2020/06/04 Python
python开根号实例讲解
2020/08/30 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
四风批评与自我批评范文
2014/10/14 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
深度学习详解之初试机器学习
2021/04/14 Python