基于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 相关文章推荐
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
PHP 开发环境配置(测试开发环境)
Apr 28 PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
解析php常用image图像函数集
Jun 24 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 PHP
php调用google接口生成二维码示例
Apr 28 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
php实现仿写CodeIgniter的购物车类
Jul 29 PHP
PHP PDOStatement::closeCursor讲解
Jan 30 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十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
基于jquery的图片懒加载js
2010/06/30 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
python线程join方法原理解析
2020/02/11 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
前台接待员岗位职责
2014/01/02 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
2014年班务工作总结
2014/12/02 职场文书
安全保证书
2015/01/16 职场文书
质量保证书格式模板
2015/02/27 职场文书
绿里奇迹观后感
2015/06/15 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL