新浪微博api的使用

在采集微博数据的时候,可以利用微博的API来进行调用。在调用微博APi的时候需要做两项工作,第一步是创建应用,第二步是安装微博SDK.

创建应用

创建应用的目的是获取app-key和app-secret,并设置授权回调页。 

登陆微博开放平台创建应用https://open.weibo.com/apps

应用名称以及后续的信息随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret。应用创建成功后可以在“我的应用”里面看到刚刚创建的应用的详细信息,在“应用信息”里面可以找到App Key和App Secret,这些信息在后面会用到。 

 

接着上面的打开“应用信息”里面的“高级信息”,然后点击“高级信息”里面的“编辑”按钮,将“授权回调页面”设置为:https://api.weibo.com/oauth2/default.html,将“取消授权回调页”也设置为:https://api.weibo.com/oauth2/default.html。至此第一步工作已完成。


安装微博SDK

微博SDK链接https://open.weibo.com/wiki/SDK,微博 SDK支持多种语言,本文以php为例来说明操作。

新浪微博的授权机制,即OAuth 2

API的调用是需要获取用户身份认证的(用户授权)。目前微博开放平台用户身份鉴权主要采用的是OAuth2.0

关于OAuth2.0协议的授权流程可以参考下面的流程图,其中Client指第三方应用(即我们在第三步创建的自己的应用),Resource Owner指用户,Authorization Server是我们的授权服务器,Resource Server是API服务器。

从流程图中可以看到,为调用API服务器内容,需要将access token告诉API服务器;而access token是在用户授权后由新浪(授权服务器)返回给我们创建的应用的;为完成用户授权,我们的应用首先要将授权页面给到用户(authorization request)。

1. 获取授权请求url

$o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );

$code_url = $o->getAuthorizeURL( WB_CALLBACK_URL );

将授权url输入到浏览器地址栏按回车,在浏览器弹出一个页面,要先点击“授权”(这里进行的OAuth 2认证,我理解为就是用户访问我的应用后将页面导向新浪服务器然后用户输入信息到新浪服务器后授权给我的应用访问用户数据,这里我将的微博授权给下面的程序了),授权后浏览器中的URL类似:https://api.weibo.com/oauth2/default.html?code=2024222384d5dc88316d21675259d73a
code就是authorization grant

2. 获取access token

我们需要向新浪授权服务器提交code后面的字符串才能获得access token。相当于告诉新浪服务器我们的应用已经得到用户的授权,现在可以访问用户的数据了,于是授权服务器给到我们通行证(access token),就可以从API服务器获取微博数据了。

$keys = array();
        $o = new SaeTOAuthV2( WB_AKEY , WB_SKEY ); 
        $keys['code'] = '89c143736a55980bd2e82460b1092c88';
        //fe080b632eec18452a9ec8eea3c4b748
        $keys['redirect_uri'] = WB_CALLBACK_URL;
        try {
            $token = $o->getAccessToken( 'code', $keys ) ;
        }
        catch (OAuthException $e) {
            echo "getAccessToken fail.reason:".$e->getMessage()."\n";
        }  
        var_dump($token);//expire_in表示access_token的有效期
        $accessToken = $token["access_token"];

3.获取微博数据,编写代码调用微博api

$accessToken = '2.00S_7idC0psiN42941abc2354ymrJC';
        $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $accessToken );
        $ret = $c->show_user_by_name('小二来一吨白菜');

 

自2013年7月2日起,微博开放平台将对用户关系读取、微博内容读取类接口进行升级;为保证您的线上应用正常运营,请在7月2日前对以下接口进行升级;本次升级对微博类客户端和合规的应用没有影响。升级中,遇到任何问题,请私信@微博开放平台,感谢您的理解支持!具体调整接口如下:
获取当前登录用户发布的微博消息列表(2/statuses/user_timeline )
获取当前登录用户发布的微博消息ID列表(2/statuses/user_timeline/ids )
获取用户的关注列表(2/friendships/friends)
获取共同关注人列表(2/friendships/friends/in_common)
获取双向关注列表(2/friendships/friends/bilateral)
获取双向关注UID列表(2/friendships/friends/bilateral/ids)
获取用户关注对象UID列表(2/friendships/friends/ids)
获取用户粉丝列表(2/friendships/followers)
获取用户粉丝UID列表(2/friendships/followers/ids)
获取用户优质粉丝列表(2/friendships/followers/active)

即:接口升级后:uid与screen_name只能为当前授权用户,第三方微博类客户端不受影响

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值