基于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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
特详细的PHPMYADMIN简明安装教程
Aug 01 PHP
PHPMyAdmin 快速配置方法
May 11 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
php注册登录系统简化版
Dec 28 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 PHP
详解PHP服务器如何在有限的资源里最大提升并发能力
May 25 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 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
国培计划培训感言
2014/03/11 职场文书
五一劳动节活动记录
2014/03/23 职场文书
施工协议书范本
2014/04/22 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
青年文明号汇报材料
2014/12/23 职场文书
2016年会领导致辞稿
2015/07/29 职场文书