php简单实现发微博动态
首先,肯定是注册成为开发者新浪微博开放平台
选择网站应用,填写一些基本信息

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

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

接下来,就是代码部分了:
随便创建一个页面,可以是一个a标签,或者自己找一个新浪的图标,随你喜欢
client_id 就是填写完应用信息后获得的App Key
redirect_uri 就是高级信息里面的回调地址
浏览器输入这个页面的地址,点击,会跳转到授权页面,点击授权并登陆
到回调地址页面,这是,回调地址会返回一个临时code,我们可以用code来换取token
|
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
|
<?phpheader('content-type:text/html;charset=utf-8');$code = $_GET['code']; //获取code$client_id = '2259374069'; //App Key$client_secret = '你的App Secret'; //App Secret$grant_type = 'authorization_code'; //获取类型// 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就可以,我以发微博为例
|
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
|
<?phpheader('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简单实现发微博动态的更多相关文章
- bzoj4419[SHOI2013]发微博
题意:给你一个初始没有边,点权均为0的无向图,三种操作:加边,删边,选择一个点将当前与之相邻的点(不包括自身)的点权+1,询问最后所有点的点权. 据说正解是set维护每个人的朋友,然后考虑每次加边.删 ...
- [iOS微博项目 - 3.1] - 发微博界面
github: https://github.com/hellovoidworld/HVWWeibo A.发微博界面:自定义UITextView 1.需求 用UITextView做一个编写微博的输 ...
- 多微博账号同时发微博的插件--fawave
我们每个人应该都不止一个博客或者微博,尤其是明星.为了考虑与新闻社区媒体的关系,必须在每个平台都要入住一下才好,还有一方面也是对粉丝的一种关爱吧.反正里面关系很复杂.有没有一个工具可以讲微博的内容同步 ...
- [BZOJ 4419][Shoi2013]发微博
4419: [Shoi2013]发微博 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 665 Solved: 364[Submit][Status] ...
- 【BZOJ4419】[SHOI2013]发微博(???)
[BZOJ4419][SHOI2013]发微博(???) 题面 BZOJ 洛谷 题解 一道\(easy\),每个点维护一下要给周围的点加上多上,如果额外连了一个点进来就给他把标记减掉,如果删掉了一条边 ...
- 试验IFTTT同步发微博
没啥 测试下同步发微博
- BZOJ4419: [Shoi2013]发微博 暴力
Description 刚开通的SH微博共有n个用户(1..n标号),在短短一个月的时间内,用户们活动频繁,共有m条按时间顺序的记录: ! x 表示用户x发了一条微博: + x y 表示用户x和用 ...
- bzoj4419 发微博
Description 刚开通的SH微博共有n个用户(1..n标号),在短短一个月的时间内,用户们活动频繁,共有m条按时间顺序的记录: ! x 表示用户x发了一条微博: + x y 表示用户x和用 ...
- BZOJ 4419: [Shoi2013]发微博 set模拟
4419: [Shoi2013]发微博 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4419 Description 刚开通的SH微博共 ...
随机推荐
- thinkphp3.2开发网页实现第三方登录
1.在要添加登录的html里添加登录按钮: <a href="{:U('Public/login/',array('type'=>'weixin'))}">< ...
- iOS之 Category 属性 的理解
在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量 反正读第一遍的时候我是有点晕的,可以添加“属性”,然后又说“添加实例变量”,第一感觉就好像 有 ...
- angular之scope详解
AngularJS的一些指令会创建子作用域,而子作用域会继承自父作用域,大致可分为以下3种 1.创建子作用域并继承父作用域的指令 ng-repeat ng-include ng-switch ng-c ...
- 1026: [SCOI2009]windy数
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 8247 Solved: 3708[Submit][Sta ...
- Ignatius and the Princess IV(乱搞一发竟然过了)
B - Ignatius and the Princess IV Time Limit:1000MS Memory Limit:32767KB 64bit IO Format:%I64 ...
- THE MATRIX PROBLEM
THE MATRIX PROBLEM Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 在ASP.NET Core中使用AOP来简化缓存操作
前言 关于缓存的使用,相信大家都是熟悉的不能再熟悉了,简单来说就是下面一句话. 优先从缓存中取数据,缓存中取不到再去数据库中取,取到了在扔进缓存中去. 然后我们就会看到项目中有类似这样的代码了. pu ...
- Flex布局:实现左右两列自伸缩撑满效果的
目前测试支持的浏览器: 兼容IE10及以上.Chrom.Firefox浏览器. 假如考虑IE10以下浏览器,可以考虑其他写法. 话不多说,上代码: <div style="back ...
- IOS学习——iphone X的适配
说实话,对于一个刚入门iOS两个月的新手而言,在拿到这个任务的时候整个人都是懵逼的,怎么做适配?哪些地方需要适配?该怎么做?一个个问题搞得头都大了. 首先,啥都不管,先在iPhone X上运行起来看看 ...
- ECMAScript arguments 对象(摘自W3C)
arguments 对象 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. 例如,在函数 sayHi() 中,第一个参数是 message.用 argument ...