基于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-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
php object转数组示例
Jan 15 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
php二维数组合并及去重复的方法
Mar 04 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
php实现映射操作实例详解
Oct 02 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
Javascript valueOf 使用方法
2008/12/28 Javascript
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
从0开始学Vue
2016/10/27 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
Python实现数据库编程方法详解
2015/06/09 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
职专应届生求职信
2013/11/16 职场文书
大学生饮食配送创业计划书
2014/01/04 职场文书
志愿者活动总结
2014/04/28 职场文书
学校创先争优活动总结
2014/08/28 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
施工员岗位职责范本
2015/04/11 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
SpringBoot整合Mybatis Generator自动生成代码
2021/08/23 Java/Android