基于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循环获取GET和POST值的代码
Apr 09 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
php 中的4种标记风格介绍
May 10 PHP
php Xdebug的安装与使用详解
Jun 20 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
Laravel 自带的Auth验证登录方法
Sep 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
信用卡效验程序
2006/10/09 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
php获取错误信息的方法
2015/07/17 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
微信小程序签到功能
2018/10/31 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
Python实现的栈(Stack)
2018/01/26 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
python中open函数的基本用法示例
2019/09/07 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
python 模块导入问题汇总
2021/02/01 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
某个公司的Java笔面试题
2016/03/11 面试题
党员学习十八大感想
2014/01/17 职场文书
给校长的建议书
2014/03/12 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
法定授权委托证明书
2014/09/27 职场文书
2016年寒假生活小结
2015/10/10 职场文书