基于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 相关文章推荐
用libTemplate实现静态网页的生成
Oct 09 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
Aug 31 PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 PHP
PHP strtotime函数用法、实现原理和源码分析
Feb 04 PHP
php多重接口的实现方法
Jun 20 PHP
php使用PDO执行SQL语句的方法分析
Feb 16 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
Oct 23 PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 PHP
php查看一个变量的占用内存的实例代码
Mar 29 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 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的异常处理类Exception的使用及说明
2012/06/13 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
python pickle 和 shelve模块的用法
2013/09/16 Python
Python实现的栈(Stack)
2018/01/26 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
Django实现学生管理系统
2019/02/26 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
心理学专业毕业生推荐信范文
2013/11/21 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP