php微博 基于PHP实现发微博动态代码实例
ノGHJ 人气:0首先,肯定是注册成为开发者新浪微博开放平台
选择网站应用,填写一些基本信息
填完后在‘我的应用'中,会看到刚创建的应用信息,我们只是简单的测试一下,所以其他复杂的注册信息都不用填写,有这些就够了
很重要的一点,回调地址填写↓,回调地址是微博返回数据的地址,一定要填写完全一致
接下来,就是代码部分了:
随便创建一个页面,可以是一个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));
我们发现,这段代码下面的部分跟上段代码一样,没错,就是这样的
在浏览起输入这个页面的地址,再去看看你的微博,是不是成功发了一条微博?
加载全部内容