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
|
<?php header( '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
|
<?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简单实现发微博动态的更多相关文章
- 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微博共 ...
随机推荐
- Mybatis Generator生成Mybatis Dao接口层*Mapper.xml以及对应实体类
[前言] 使用Mybatis-Generator自动生成Dao.Model.Mapping相关文件,Mybatis-Generator的作用就是充当了一个代码生成器的角色,使用代码生成器不仅可以简化我 ...
- Buy the Ticket(卡特兰数+递推高精度)
Buy the Ticket Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- NumPy基础练习(练一遍搞定NumPy)
import numpy as np import pandas as pd from numpy import random from numpy.random import randn ##### ...
- hbase建表
import java.util.ArrayList; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hb ...
- Shell入门知识
Shell 简介 Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 常常作为批处理命令来 ...
- thinkphp碰到的一些小问题
1. 生成的html自动被去掉换行和空格,压缩挤到一起了. 解决: 开启debug即可,在入口文件增加 define("APP_DEBUG",true); 2. 添加mysql的 ...
- 微信公众号jssdk自定义分享,二次分享自定义失败解决技巧
百度上自定义微信分享标题以及描述的解决方法有很多,基本上都能实现一次分享:流程基本上是这样的 1.首先引入微信jssdk =><script src="http://res.wx ...
- Python 面向对象基础知识
面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass ...
- jQuery+ajax实现局部刷新
在项目中,经常会用到ajax,比如实现局部刷新,比如需要前后端交互等,这里呢分享局部刷新的两种方法,主要用的是ajax里面的.load(),其他高级方法的使用以后再做详细笔记. 第一种: 当某几个页面 ...
- IpHelper根据客户端IP进行网站分流
public class IpHelper { // 核心方法:IP搜索 /// <summary> /// 查找IP所属地区,确保web.c ...