基于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应用程序来获取Web服务器的状态信息
Oct 09 PHP
PHP自动更新新闻DIY
Oct 09 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
学习使用curl采集curl使用方法
Jan 11 PHP
Chrome Web App开发小结
Sep 04 PHP
浅谈php命令行用法
Feb 04 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
WordPress主题制作之模板文件的引入方法
Dec 28 PHP
PHP二维数组排序简单实现方法
Feb 14 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 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魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
在Python的Django框架中编写编译函数
2015/07/20 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
python3 线性回归验证方法
2019/07/09 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
linux面试题参考答案(11)
2012/05/01 面试题
小学六一儿童节活动方案
2014/08/27 职场文书
党员民主生活会材料
2014/12/15 职场文书
稽核岗位职责范本
2015/04/13 职场文书
Python OpenCV形态学运算示例详解
2022/04/07 Python