基于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编程中八种常见的文件操作方式
Nov 19 PHP
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
php递归实现无限分类生成下拉列表的函数
Aug 08 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
phpstudy后门rce批量利用脚本的实现
Dec 12 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 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
php函数的常用方法及注意之处小结
2011/07/10 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
python机器学习之随机森林(七)
2018/03/26 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
python pygame实现方向键控制小球
2019/05/17 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
python实现处理mysql结果输出方式
2020/04/09 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
python实现简单文件读写函数
2021/02/25 Python
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
室内设计专业个人的自我评价
2013/12/18 职场文书
公积金转移接收函
2014/01/11 职场文书
股份合作协议书
2014/04/12 职场文书
管理建议书范文
2014/05/13 职场文书
民主生活会主持词
2015/07/01 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书