基于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代码 用PHP写出自己的BLOG系统
Apr 12 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
php通过baihui网API实现读取word文档并展示
Jun 22 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 PHP
PHP连接MySQL进行增、删、改、查操作
Feb 19 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 09 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
2006/12/23 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
javascript中函数作为参数调用的方法
2015/02/09 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
python列表操作使用示例分享
2014/02/21 Python
Python学习笔记_数据排序方法
2014/05/22 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
django中使用POST方法获取POST数据
2019/08/20 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
创业计划书撰写原则
2014/01/25 职场文书
会议邀请书范文
2014/02/02 职场文书
大学生两会精神学习心得体会
2014/03/10 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
拉歌口号大全
2014/06/13 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
Redis如何实现验证码发送 以及限制每日发送次数
2022/04/18 Redis