使用新浪微博开放平台api同步微博内容至自己网站(安装微博SDK微博链接多种语言2API应用(组图))
优采云 发布时间: 2021-09-28 18:02使用新浪微博开放平台api同步微博内容至自己网站(安装微博SDK微博链接多种语言2API应用(组图))
当采集微博数据时,可以使用微博的API进行调用。调用微博API时需要完成两个任务。第一步是创建一个应用程序,第二步是安装微博SDK。
创建应用程序
创建应用的目的是获取app-key和app-secret,设置授权回调页面。
登录微博开放平台创建应用
随意填写应用名称及后续信息。填写后无需提交审核。您所需要的只是应用程序密钥和应用程序机密。应用创建成功后,可以在“我的应用”中看到新创建的应用的详细信息,在“应用信息”中可以找到App Key和App Secret,后面会用到。
然后打开上面“申请信息”中的“高级信息”,然后点击“高级信息”中的“编辑”按钮,将“授权回调页面”设置为:,同时将“取消授权回调页面”设置为:. 至此,第一步已经完成。
安装微博SDK
微博SDK链接,微博SDK支持多国语言,本文以php为例来说明操作。
新浪微博的授权机制,即OAuth 2
API 调用需要获取用户认证(用户授权)。目前,OAuth2.0主要用于微博开放平台上的用户身份认证。
关于OAuth2.0协议的授权流程,请参考如下流程图,其中Client指的是第三方应用(也就是我们自己在第三步创建的应用),Resource Owner指的是一个user,Authorization Server 是我们的授权 Server,Resource Server 是一个 API server。
从流程图中可以看出,为了调用API服务器内容,需要将访问令牌告知API服务器;用户授权后,将访问令牌返回给新浪(授权服务器)创建的应用程序;为了完成用户授权,我们应用程序首先要给用户授权页面(授权请求)。
1. 获取授权请求地址
$o = 新 SaeTOAuthV2( WB_AKEY, WB_SKEY );
$code_url = $o->getAuthorizeURL(WB_CALLBACK_URL);
在浏览器地址栏中输入授权url并回车,浏览器弹出一个页面,必须先点击“授权”(这里进行的是OAuth 2认证,我理解用户会在之后将页面定向到新浪服务器访问我的应用程序。用户在新浪服务器输入信息后,我授权我的应用程序访问用户数据。这里我授权微博给以下程序)。授权后,浏览器中的网址类似:
代码是授权许可
2. 获取访问令牌
我们需要将代码后面的字符串提交给新浪授权服务器来获取访问令牌。相当于告诉新浪服务器我们的应用已经得到用户的授权,现在可以访问用户的数据了,所以授权服务器给了我们一个访问令牌,从API服务器获取微博数据。
$keys = array();
$o = 新 SaeTOAuthV2( WB_AKEY, WB_SKEY );
$keys['code'] = '89c143736a55980bd2e82460b1092c88';
//fe080b632eec18452a9ec8eea3c4b748
$keys['redirect_uri'] = WB_CALLBACK_URL;
尝试 {
$token = $o->getAccessToken('code', $keys);
}
捕获(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/友谊/朋友/双边)
获取双向关注UID列表(2/friendships/friends/bilateral/ids)
获取用户关注对象的UID列表(2/friendships/friends/ids)
获取用户的粉丝列表(2/friendships/followers)
获取用户的粉丝UID列表(2/friendships/followers/ids)
获取用户优质粉丝列表(2/好友/关注/活跃)
即:接口升级后:uid和screen_name只能是当前授权用户,第三方微博客户端不受影响