首先,肯定是注册成为开发者新浪微博开放平台

选择网站应用,填写一些基本信息

填完后在‘我的应用’中,会看到刚创建的应用信息,我们只是简单的测试一下,所以其他复杂的注册信息都不用填写,有这些就够了

很重要的一点,回调地址填写↓,回调地址是微博返回数据的地址,一定要填写完全一致

接下来,就是代码部分了:

随便创建一个页面,可以是一个a标签,或者自己找一个新浪的图标,随你喜欢

client_id 就是填写完应用信息后获得的App Key

redirect_uri 就是高级信息里面的回调地址

浏览器输入这个页面的地址,点击,会跳转到授权页面,点击授权并登陆

到回调地址页面,这是,回调地址会返回一个临时code,我们可以用code来换取token

[PHP] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
header('content-type:text/html;charset=utf-8');
$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简单实现发微博动态的更多相关文章

  1. bzoj4419[SHOI2013]发微博

    题意:给你一个初始没有边,点权均为0的无向图,三种操作:加边,删边,选择一个点将当前与之相邻的点(不包括自身)的点权+1,询问最后所有点的点权. 据说正解是set维护每个人的朋友,然后考虑每次加边.删 ...

  2. [iOS微博项目 - 3.1] - 发微博界面

    github: https://github.com/hellovoidworld/HVWWeibo   A.发微博界面:自定义UITextView 1.需求 用UITextView做一个编写微博的输 ...

  3. 多微博账号同时发微博的插件--fawave

    我们每个人应该都不止一个博客或者微博,尤其是明星.为了考虑与新闻社区媒体的关系,必须在每个平台都要入住一下才好,还有一方面也是对粉丝的一种关爱吧.反正里面关系很复杂.有没有一个工具可以讲微博的内容同步 ...

  4. [BZOJ 4419][Shoi2013]发微博

    4419: [Shoi2013]发微博 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 665  Solved: 364[Submit][Status] ...

  5. 【BZOJ4419】[SHOI2013]发微博(???)

    [BZOJ4419][SHOI2013]发微博(???) 题面 BZOJ 洛谷 题解 一道\(easy\),每个点维护一下要给周围的点加上多上,如果额外连了一个点进来就给他把标记减掉,如果删掉了一条边 ...

  6. 试验IFTTT同步发微博

    没啥 测试下同步发微博    

  7. BZOJ4419: [Shoi2013]发微博 暴力

    Description 刚开通的SH微博共有n个用户(1..n标号),在短短一个月的时间内,用户们活动频繁,共有m条按时间顺序的记录: ! x   表示用户x发了一条微博: + x y 表示用户x和用 ...

  8. bzoj4419 发微博

    Description 刚开通的SH微博共有n个用户(1..n标号),在短短一个月的时间内,用户们活动频繁,共有m条按时间顺序的记录: ! x   表示用户x发了一条微博: + x y 表示用户x和用 ...

  9. BZOJ 4419: [Shoi2013]发微博 set模拟

    4419: [Shoi2013]发微博 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4419 Description 刚开通的SH微博共 ...

随机推荐

  1. iOS 之 protocol的相关问题

    定义一个协议, 一个协议可以扩展子另一个协议 如果需要扩展多个协议中间使用逗号分隔 //定义一个协议 @protocol AnimalDelegate <NSObject, ***> @r ...

  2. hadoop2.6环境中部署hive1.2.2的错误

    1.hive配置遇到的问题( Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D) 解决 ...

  3. CodeForces - 294A Shaass and Oskols

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  4. 数据结构--KMP算法总结

    数据结构—KMP KMP算法用于解决两个字符串匹配的问题,但更多的时候用到的是next数组的含义,用到next数组的时候,大多是题目跟前后缀有关的 . 首先介绍KMP算法:(假定next数组已经学会, ...

  5. Summer Holiday

    Summer Holiday Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  6. java的linux命令

    1.查找文件find / -name filename.txt 根据名称查找/目录下的filename.txt文件.find . -name “*.xml” 递归查找所有的xml文件2.查看一个程序是 ...

  7. GPIO复位功能说明

    根据STM32L0x3参考手册RM0367,每个General-Purpose IO口,有以下寄存器: 1.4个32位的控制寄存器,分别为GPIOx_MODER,GPIOx_OTYPER,GPIOx_ ...

  8. [转载] Hive与HBase的联系与区别

    转载自http://blog.csdn.net/wangmuming/article/details/23954527和http://www.cnblogs.com/justinzhang/p/427 ...

  9. Runtime的理解与实践

    Runtime是什么?见名知意,其概念无非就是"因为 Objective-C 是一门动态语言,所以它需要一个运行时系统--这就是 Runtime 系统"云云.对博主这种菜鸟而言,R ...

  10. Python网络编程篇之socketserver

    1.socketserver模块和类 socketserver是标准库中的一个高级模块,目标是简化很多样板代码(创建网络客户端和服务器所必须的代码) 这个模块封装了socket编程所需要的各种各样的类 ...