当前位置:首页 > PHP教程 > php高级应用 > 列表

基于PHP实现发微博动态代码实例

发布:smiling 来源: PHP粉丝网  添加日期:2022-04-05 09:22:06 浏览: 评论:0 

这篇文章主要介绍了基于PHP实现发微博动态代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

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

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

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

随便创建一个页面,可以是一个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

  1. <?php 
  2. header('content-type:text/html;charset=utf-8'); 
  3. $code = $_GET['code'];  //获取code 
  4. $url = 'https://api.weibo.com/oauth2/access_token';  //获取token的地址 
  5. $client_id = '2259374069';  //App Key 
  6. $client_secret = '你的App Secret';  //App Secret 
  7. $grant_type = 'authorization_code';  //获取类型 
  8. $redirect_uri = 'http://www.huazi.com/good/login.php';  //回调地址 
  9.    
  10. // echo $code;die; 
  11.    
  12.    
  13. //模拟登陆数据 
  14.   $vars['client_id'] = $client_id
  15.   $vars['client_secret'] = $client_secret
  16.   $vars['grant_type'] = $grant_type
  17.   $vars['code'] = $code
  18.   $vars['redirect_uri'] = $redirect_uri
  19.    
  20. //使用CURL模拟登录信息 
  21.   $method_post = true; 
  22.   $ch =curl_init(); 
  23.   $params[CURLOPT_URL] = $url
  24.   $params[CURLOPT_HEADER] = false; 
  25.   $params[CURLOPT_RETURNTRANSFER] = true; 
  26.   $params[CURLOPT_FOLLOWLOCATION] = true; 
  27.   $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0'
  28.   $params[CURLOPT_SSL_VERIFYPEER] = false; 
  29.   $params[CURLOPT_SSL_VERIFYHOST] = false; 
  30.    
  31. //格式化地址信息   
  32.   $postfields = ''
  33.   foreach ($vars as $key => $value) { 
  34.     $postfields .= urlencode($key) . '=' . urlencode($value) . '&'
  35.   } 
  36.    
  37.   $params[CURLOPT_POST] = true; 
  38.   $params[CURLOPT_POSTFIELDS] =$postfields
  39.    
  40.   curl_setopt_array($ch$params); 
  41.   $content = curl_exec($ch); 
  42.    
  43.   //如果发生curl错误可以使用curl_error查看错误信息 
  44.   // var_dump(curl_error($ch)); 
  45.   echo $content
  46.   // echo "<br>"; 
  47.   // echo "<pre>"; 
  48.   // print_r(json_decode($content,true)); 

至此,就获取到了我们需要的token信息,已经实现了新浪第三方登录

把token取出来,通过token可以操作很多东西,传不同的参数和URL就可以,我以发微博为例。

  1. <?php 
  2. header('content-type:text/html;charset=utf-8'); 
  3. $url = 'https://api.weibo.com/2/statuses/update.json'
  4. $access_token = '刚才获取的token'
  5. $status = '我的测试微博'//你要发的微博内容 
  6.    
  7. //模拟登陆数据 
  8.    
  9.   $vars['access_token'] = $access_token
  10.   $vars['status'] = $status
  11.    
  12.   $method_post = true; 
  13.   $ch =curl_init(); 
  14.   $params[CURLOPT_URL] = $url
  15.   $params[CURLOPT_HEADER] = false; 
  16.   $params[CURLOPT_RETURNTRANSFER] = true; 
  17.   $params[CURLOPT_FOLLOWLOCATION] = true; 
  18.   $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0'
  19.   $params[CURLOPT_SSL_VERIFYPEER] = false; 
  20.   $params[CURLOPT_SSL_VERIFYHOST] = false; 
  21.   $postfields = ''
  22.    
  23.   foreach ($vars as $key => $value) { 
  24.     $postfields .= urlencode($key) . '=' . urlencode($value) . '&'
  25.   } 
  26.    
  27.   $params[CURLOPT_POST] = true; 
  28.   $params[CURLOPT_POSTFIELDS] =$postfields
  29.    
  30.   curl_setopt_array($ch$params); 
  31.   $content = curl_exec($ch); 
  32.    
  33.   // var_dump(curl_error($ch)); 
  34.   echo $content
  35.   echo "<br>"
  36.   echo "<pre>"
  37.   print_r(json_decode($content,true)); 

我们发现,这段代码下面的部分跟上段代码一样,没错,就是这样的,在浏览起输入这个页面的地址,再去看看你的微博,是不是成功发了一条微博?

Tags: PHP发微博动态

分享到: