关于微博开放平台Oauth2.0接入网站应用

关于什么是微博开放平台及微博开放平台能做什么,咱就不做搜索引擎的搬运工了

这里直接给个链接介绍:微博开放平台

本文只是抛砖引玉,讲讲微博开放平台的基本用法,适合没接触过开放平台的朋友入门学习,老鸟就略过啦~

举例(新浪)微博开放平台:http://open.weibo.com/ (这里是官网)

先来看看关于微博开放平的台网站接入:

什么是网站接入?

举几个例子,比如我们经常会看到各大网站可以直接使用QQ,微博,微信等账号直接登录、各种文章、游戏、页面的一键分享、同步到QQ空间、微博等社交工具的实时动态等,这些都是开放平台网站接入的功能。

好了,话不多说了,直接进入主题

1、首先得先注册个新浪微博的账号,然后登陆开放平台

http://open.weibo.com/

然后在 管理中心->我的网站->添加新网站  填写下关于自己网站的一些基本信息,然后复制下面的<meta>标签里的内容到自己的网站首页就可以完成认证了。

然后记录下自己的WB_AKEY和WB_SKEY(这个很重要),涉及到安全,我这里就不截图了。

在我的网站里就可以看到我们刚填写的网站应用了

2、接着我们就可以在官网上下载相关的SDK开发工具包了,这里包括 Java , PHP, Flash, iOS, WP7, Android及 Python等语言。

下载链接:http://open.weibo.com/wiki/SDK

我个人用的是PHP,就说这个啦,因为SDK放在谷歌上,可能访问有点慢。

http://code.google.com/p/libweibo/downloads/list

这里要下载上图红框里的任一一个压缩包,包含新版接口及OAuth2.0。

这是压缩包的内容:

分别介绍下各文件:   

callback.php       回调,简单说就是认证,获取access_token

config.php            参数配置文件,包含APP key、APP secret和回调页面地址的参数

index.php           首页

saetv2.ex.class.php  新浪微博的操作类和认证类,就是SDK,里面有许多注释可以当成API来使用

weibolist.php      我们要实现的功能都在这一个php页面中

3、具体代码实现

先修改config.php里面的配置信息,填入我们刚记录的WB_AKEY和WB_SKEY,这里是要特别注意的是WB_CALLBACK_URL回调页面地址的填写,HTTP不能省略,需填写完整的URL

<?php
header(‘Content-Type: text/html; charset=UTF-8‘);

define( "WB_AKEY" , ‘xxxxxxxxxx‘ );
define( "WB_SKEY" , ‘xxxxxxxxxxxxxxxxxxxxxxxxx‘ );
define( "WB_CALLBACK_URL" , ‘http://xxxxxxxxxxxx/callback.php‘ );

然后来到index.php(这里要吐槽下新浪写这个Demo的工作人员,现在PHP新版已经不支持<?=?>这种写法的输入格式了)

举个例子:

<a href="<?=$code_url?>"><img src="weibo_login.png" title="点击进入授权页面" alt="点击进入授权页面" border="0" />

大家对应的修改下原代码,改成echo输出就好了。

在微博开放平台没改版之前,记得里面的Demo还有个$_SERVER[‘SCRIPT_URI‘]这也是不能用的,要对应修改。

<a href="<?php echo $code_url?>"><img src="weibo_login.png" title="点击进入授权页面" alt="点击进入授权页面" border="0" /></a>

然后就可以把文件上传到自己的公网服务器了,本来是可以在本地做测试的,开放平台改版后,为控制环境,要求严格了些。

打开我们的首页index.php,点击用微博账号登陆,登陆成功会出现如下文字。

授权完成,进入你的微博列表页面

点击进入weibolist.php页面,我们就可以看到对应微博账号所看到的对应微博信息了。

分析下weibolist.php的代码:

 1 <?php
 2 session_start();
 3
 4 include_once( ‘config.php‘ );
 5 include_once( ‘saetv2.ex.class.php‘ );
 6
 7 $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION[‘token‘][‘access_token‘] );
 8 $ms  = $c->home_timeline(); // done
 9 $uid_get = $c->get_uid();
10 $uid = $uid_get[‘uid‘];
11 $user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息
12
13 ?>

其实一目了然了,引入配置文件,类库,实例化出对象,传参,调用方法,返回值。

比如:

$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION[‘token‘][‘access_token‘] );

$ms  = $c->home_timeline();

打开类库文件查找home_timeline方法,获取当前登录用户及其所关注用户的最新微博消息,API已经写的很清楚了,大家有时间多去可以去读读源码。

 1 /**
 2      * 获取当前登录用户及其所关注用户的最新微博消息。
 3      *
 4      * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 http://weibo.com 后在“我的首页”中看到的内容相同。同friends_timeline()
 5      * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/home_timeline statuses/home_timeline}
 6      *
 7      * @access public
 8      * @param int $page 指定返回结果的页码。根据当前登录用户所关注的用户数及这些被关注用户发表的微博数,翻页功能最多能查看的总记录数会有所不同,通常最多能查看1000条左右。默认值1。可选。
 9      * @param int $count 每次返回的记录数。缺省值50,最大值200。可选。
10      * @param int $since_id 若指定此参数,则只返回ID比since_id大的微博消息(即比since_id发表时间晚的微博消息)。可选。
11      * @param int $max_id 若指定此参数,则返回ID小于或等于max_id的微博消息。可选。
12      * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。
13      * @param int $feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
14      * @return array
15      */
16     function home_timeline( $page = 1, $count = 50, $since_id = 0, $max_id = 0, $base_app = 0, $feature = 0 )
17     {
18         $params = array();
19         if ($since_id) {
20             $this->id_format($since_id);
21             $params[‘since_id‘] = $since_id;
22         }
23         if ($max_id) {
24             $this->id_format($max_id);
25             $params[‘max_id‘] = $max_id;
26         }
27         $params[‘count‘] = intval($count);
28         $params[‘page‘] = intval($page);
29         $params[‘base_app‘] = intval($base_app);
30         $params[‘feature‘] = intval($feature);
31
32         return $this->oauth->get(‘statuses/home_timeline‘, $params);
33     }

很简单吧?找几个方法来试试吧。

自己写个表单发个微博试试

<?php
session_start();

include_once( ‘config.php‘ );
include_once( ‘saetv2.ex.class.php‘ );

$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION[‘token‘][‘access_token‘] );
$ms  = $c->home_timeline(); // done
$uid_get = $c->get_uid();
$uid = $uid_get[‘uid‘];
$user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息

if($_POST[‘content‘]){
    $c->update($_POST[‘content‘]);
}else{

}

?>
<form action="" method="post">
<input type="text" name="content"/>
<input type="submit" value="发布微博"/>
</form>

哈哈,是不是很简单呢?

再试试获取关注人ID
 1 /**
 2      * 获取用户的双向关注uid列表
 3      *
 4      * 对应API:{@link http://open.weibo.com/wiki/2/friendships/friends/bilateral/ids friendships/friends/bilateral/ids}
 5      *
 6      * @param int $uid  需要获取双向关注列表的用户UID。
 7      * @param int $count 单页返回的记录条数,默认为50。
 8      * @param int $page  返回结果的页码,默认为1。
 9      * @param int $sort  排序类型,0:按关注时间最近排序,默认为0。
10      * @return array
11      **/
12     function bilateral_ids( $uid, $page = 1, $count = 50, $sort = 0)
13     {
14         $params = array();
15         $params[‘uid‘] = $uid;
16         $params[‘count‘] = $count;
17         $params[‘page‘] = $page;
18         $params[‘sort‘] = $sort;
19         return $this->oauth->get( ‘friendships/friends/bilateral/ids‘,  $params  );
20     }


 1 <?php
 2 session_start();
 3
 4 include_once( ‘config.php‘ );
 5 include_once( ‘saetv2.ex.class.php‘ );
 6
 7 $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION[‘token‘][‘access_token‘] );
 8 $ms  = $c->home_timeline(); // done
 9 $uid_get = $c->get_uid();
10 $uid = $uid_get[‘uid‘];
11 $user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息
12
13 //获取用户的双向关注uid列表
14 $info=$c->bilateral_ids($uid);
15 print_r($info);
16 ?>

打开得到如下数据:

Array
(
    [ids] => Array
        (
            [0] => 2365402665
            [1] => 2874824370
            [2] => 2458103930
            [3] => 2631415422
            [4] => 1726492234
            [5] => 3307625345
            [6] => 1748961617
            [7] => 1898400044
            [8] => 5074409657
            [9] => 1459729954
            [10] => 1960937255
            [11] => 3002010437
            [12] => 1840024911
            [13] => 1933041827
            [14] => 3544004403
            [15] => 2218615153
            [16] => 1710952872
            [17] => 3296525792
            [18] => 2023869922
            [19] => 1136908732
            [20] => 5142045518
            [21] => 2113440863
            [22] => 2882182570
            [23] => 2750918083
            [24] => 5047720995
            [25] => 3237485452
            [26] => 2301448374
            [27] => 2241922934
            [28] => 3194061564
            [29] => 1516453591
            [30] => 3046227467
            [31] => 2990824405
            [32] => 2901804343
            [33] => 2062251914
            [34] => 1846033411
            [35] => 3024328843
            [36] => 3989444339
            [37] => 3937835581
            [38] => 2951303393
            [39] => 38376110
            [40] => 2403647687
            [41] => 2637451094
            [42] => 2257435150
            [43] => 2997619907
            [44] => 2272664314
            [45] => 1858542007
            [46] => 3566646574
            [47] => 3017416653
            [48] => 2017817897
            [49] => 3270778184
        )

    [total_number] => 198
)

然后我们就可以根据UID去获取更多的信息,比如用户名,基础资料等。

内容有点多,我就不一一去演示了

有兴趣的朋友可以多看看saetv2.ex.class.php文件

官网提供的API:http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI

好啦,就此结束吧,毕竟只是作为入门介绍

有时间再写篇关于微博开放平台站内应用的入门介绍~See you

关于微博开放平台Oauth2.0接入网站应用,布布扣,bubuko.com

时间: 2024-10-13 07:57:43

关于微博开放平台Oauth2.0接入网站应用的相关文章

OAuth2.0学习(5-4)新浪开放平台-微博API-使用OAuth2.0调用API

使用OAuth2.0调用API 使用OAuth2.0调用API接口有两种方式: 1. 直接使用参数,传递参数名为 access_token URL 1 https://api.weibo.com/2/statuses/public_timeline.json?access_token=abcd 2.在header里传递,形式为在header里添加 Authorization:OAuth2空格abcd,这里的abcd假定为Access Token的值,其它接口参数正常传递即可. 注:所有的微博开放

微博开放平台api使用

前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文章要分享到微博或者其他社交网站中一样,非常方便. 下面就来探秘一番. 1.注册开发者并获取app key 和 app secret 百度很容易找到微博开放平台的入口,登录自己的微博账号,点击账号头像,会提示编辑开发者信息. 可以看到如下的页面,只需要按照提示填写,其中紧急联系人可以填自己,网站无所谓

微博开放平台开发(一)获取access_token

因为工作需要,接触到微博开放平台开发.特做此记录方便查用. 一.准备. 1.微博账号.注册很容易. 2.微博账号成为开发者. 登录微博开放平台  登录你注册的账号,然后进入管理中心完善开发者基本信息和身份认证. 这个时候,还需要浏览一下微博开放平台的文档,来了解一些这个开放平台的一些规范性的名词. 每个链接都点进去看看,顺便看看微博API文档,你会发现,里边有介绍说,一些接口的调用需要获取access_token.本文就是要实现这个目标. 二.创建应用. 比如咱们要开发一个网站,然后在这个网站里

微信公众平台oauth2.0网页授权

本篇文章你将学到:在自己做的微信网站里,利用oauth2.0网页授权接口获取用户的信息(openid,姓名,性别,地区,头像等).如大转盘等游戏记录哪个微信用户获得什么奖品.H5等小游戏需要把分数与对应用户捆绑在一起等网页应用. 微信公众平台oauth2.0网页授权能干什么 它是在自己做的网站中不用用户登录来获取微信用户相关信息的,进而实现相关业务. 说明与注意 1.网页授权分为两种, 一种为只获取openid  (基本授权 snsapi_base) 一种为获取用户全部信息 (高级授权 snsa

微博开放平台

http://open.weibo.com/webmaste 下面都地址都要写全,不能只写域名

腾讯微博OAuth2.0认证介绍

腾讯微博开放平台,是基于腾讯微博系统,为广大开发者和用户提供的开放数据分享与传播平台. 广大开发者和用户登录平台后,就可以使用平台提供的开放API接口,创建应用从微博系统获取信息,或将新的信息传播到整个微博系统中,丰富多样的API接口和应用,加上您的智慧,将创造出无穷的应用和乐趣. 在使用腾讯微博平台提供的API前,您需要做以下两步工作: 成为开发者,并申请appkey和appsecret 授权获取accesstoken Accesstoken是第三方获得用户授权的凭证,是第三方访问api资源的

微信公众平台开发 OAuth2.0网页授权认证

一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站.移动或桌面应用上存储的私

***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权

本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言.本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息,而无需模拟登录. 在本文中,特别要注意的是有两个不同的Access Token,他们产生的方式不一样,一种是使用AppID和AppSecret获取的access_token,一种是OAuth2.0授权中产生的access_token,方倍工作室分别称为全局Access Token和授权Access

微信公众平台开发(71)OAuth2.0网页授权

微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure