基于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初学者头疼问题总结
Oct 09 PHP
php.ini 中文版
Oct 28 PHP
php实现文件下载更能介绍
Nov 23 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
php mb_substr()函数截取中文字符串应用示例
Jul 29 PHP
php猜单词游戏
Sep 29 PHP
教你php如何实现验证码
Jan 20 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 PHP
php+js实现点赞功能的示例详解
Aug 07 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读取MySQL数据代码
2008/06/05 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
python分数表示方式和写法
2019/06/26 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
python生成随机红包的实例写法
2019/09/02 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
python 利用zmail库发送邮件
2020/09/11 Python
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
服务标兵事迹材料
2014/05/04 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
PHP策略模式写法
2021/04/01 PHP