基于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版(2)
Oct 09 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
php adodb分页实现代码
Mar 19 PHP
浅析is_writable的php实现
Jun 18 PHP
php中AES加密解密的例子小结
Feb 18 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
全面解读PHP的Yii框架中的日志功能
Mar 17 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
php将html转为图片的实现方法
May 19 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 PHP
PHP PDOStatement::bindValue讲解
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 高效率写法 推荐
2010/02/21 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
javascript String 对象
2008/04/25 Javascript
JavaScript 密码强度判断代码
2009/09/05 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
Python实现建立SSH连接的方法
2015/06/03 Python
python简单文本处理的方法
2015/07/10 Python
python类的继承实例详解
2017/03/30 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
质检部岗位职责
2013/11/11 职场文书
大学生自我鉴定书
2014/03/24 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
疾病证明书
2015/06/19 职场文书
运动会广播稿20字
2015/08/19 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript