调用微博API获取微博内容

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

一.创建应用

创建应用的目的是获取app-key和app-secret,并设置授权回调页。
(1)获取app-key和app-secret
登陆微博开放平台创建应用http://open.weibo.com/apps/new?sort=web

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

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

二.安装微博SDK

在安装SDK前,先了解一下微博的授权机制。
(1)授权机制
微博开放接口的调用,如发微博、获取用户基本信息、获取热门微博内容等,都是需要获取用户身份认证的。目前微博开放平台用户身份鉴权主要采用的是OAuth2.0。另外,为了方便开发者开发、测试自己的应用,我们还提供了开发者自身授权的身份鉴权方式,但开发者自身授权仅适用于应用所属的开发者自己调用接口。详细信息见链接:http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
(2)下载微博SDK
微博 SDK支持多种语言,本文以python和java的sdk为例来说明操作,微博sdk链接http://open.weibo.com/wiki/SDK,点击进入之后选择自己熟悉语言的SDK即可,如下所示:

安装python版微博sdk:
有两种安装方式:
1:github连接里的wiki有入门的使用方法http://github.liaoxuefeng.com/sinaweibopy/下载新浪微博SDK
2:python有个简单的安装方式:直接在命令行下键入:pip install sinaweibopy 使用方法见:https://github.com/michaelliao/sinaweibopy/wiki/OAuth2-HOWTO
实例验证,获取当前登录用户及其所关注(授权)用户的最新微博
这里需要注意的是在浏览器弹出一个页面,要先点击“授权”(这里进行的OAuth 2认证,我理解为就是用户访问我的应用后将页面导向新浪服务器然后用户输入信息到新浪服务器后授权给我的应用访问用户数据,这里我将的微博授权给下面的程序了),授权后浏览器中的URL类似:https://api.weibo.com/oauth2/default.html?code=2024222384d5dc88316d21675259d73a将code后面那个复制到控制端,程序需要读入2024222384d5dc88316d21675259d73a这个数据

注意:如果想获取别的信息,只需修改下图中的statuses__friends_timeline即可

详细代码如下:

# coding=utf-8
from weibo import APIClient
import webbrowser
APP_KEY='填入你的key'
APP_SECRET='填入你的secret'
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html
# callback url#在网站放置“使用微博账号登录”的链接,当用户点击链接后,引导用户跳转至如下地址:
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授权页面的url,利用webbrowser打开这个url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)#获取code=后面的内容
print '输入url中code后面的内容后按回车键:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,类似abc123xyz456
expires_in = r.expires_in# 设置得到的access_token
client.set_access_token(access_token, expires_in)#可以打印下看看里面都有什么东西
statuses = client.statuses__friends_timeline()['statuses'] #获取当前登录用户以及所关注用户(已授权)的微博</span>length = len(statuses)
print length
#输出了部分信息
for i in range(0,length):print u'昵称:'+statuses[i]['user']['screen_name']print u'位置:'+statuses[i]['user']['location']print u'微博:'+statuses[i]['text']

获取的内容如下:


安装java版微博sdk:
下载新浪api 的java SDK 地址:http://open.weibo.com/wiki/SDK,然后导入eclipse中,eclipse不能识别中文,解决办法:eclipse->首选项->常规->工作空间(这里我写的都是汉语,对应的英文自己查)->右边的文本文件编码选择其他,选UTF-8,这样eclipse就可以识别中文了。配置下载下来的java SDK,主要改一个文件,即src下面的config.properties:
client_ID :appkey 创建应用获取到的appkey (App Key)
client_SERCRET :app_secret 创建应用获取到的appsecret(Secret Key)
redirect_URI : 回调地址 OAuth2的回调地址(就是在高级信息里面填写的授权回调页)
使用方法
1、 请先填写相关配置:在Config.properties里 client_ID :appkey 创建应用获取到的appkey client_SERCRET :app_secret 创建应用获取到的appsecret redirect_URI : 回调地址 OAuth2的回调地址
2、 然后调用example里:OAuth4Code.java

public class OAuth4Code {
public static void main(String [] args) throws WeiboException, IOException{
Oauth oauth = new Oauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code"));
System.out.print("Hit enter when it's done.[Enter]:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String code = br.readLine();
Log.logInfo("code: " + code);
try{
System.out.println(oauth.getAccessTokenByCode(code));
} catch (WeiboException e) {
if(401 == e.getStatusCode()){
Log.logInfo("Unable to get the access token.");
}else{
e.printStackTrace();
}
}
}
}

3、 运行后会弹出浏览器地址跳转到授权认证页面,然后输入你的微博帐号和密码,会调转到你的回调地址页面,url后面会传递code参数
4、 然后在console输入code就能获取到oauth2的accesstoken
5、 接下来即可调用example,在此以user/show接口为例:

public class ShowUser {
public static void main(String[] args) {
String access_token = WeiboConfig.getValue("access_token");
String uid = args[0];
Users um = new Users(access_token);
try {
User user = um.showUserById(uid);
Log.logInfo(user.toString());
} catch (WeiboException e) {
e.printStackTrace();
}
}
}

access_token为auth4code获取到的oauth2的accesstoken。 由于目前只开放支持code的oauth认证方式,所以sdk暂时只支持code获取token方式。

调用微博API获取微博内容相关推荐

  1. Python调用微博API获取微博内容

    一:获取app-key 和 app-secret 使用自己的微博账号登录微博开放平台(http://open.weibo.com/),在微博开放中心下"创建应用"创建一个应用,应用 ...

  2. JavaScript调用原生API获取手机型号

    跨平台技术简介 针对原生开发面临问题,人们一直都在努力寻找好的解决方案,而时至今日,已经有很多跨平台框架,根据其原理,主要分为三类: H5+原生(Cordova.Ionic.微信小程序) JavaSc ...

  3. 前端js调用后端API获取数据的三种方法(2022.7.25)

    前端js调用后台API获取数据的三种方法(2022.7.25) 前言 需求分析 一个Get实例 浏览器请求 SoapUI软件请求 一个Post实例 浏览器请求 SoapUI软件请求 1.Http简介( ...

  4. sina微博api:获取24小时内前20条用户的微博信息

    package weibo4j.examples; import java.util.List; import weibo4j.Status; import weibo4j.Weibo; import ...

  5. wps解析json数据_通过WordPress HTTP API 获取json内容并解析

    WordPress 4.0的一个亮点就是JSON API的加入,今天我们提前来看看怎么获取JSON的内容并显示出来.过程就是用PHP获取远程JSON的内容,然后把获取到的JSON转化为PHP对象,然后 ...

  6. 进阶1·调用高德API获取交通数据(多个URL访问,字典提取,while无限循环下的程序间断运行)

    调用高德开放API获取实时交通数据 想法及思路 现在大型网站都提供了好多开放API,根据这些开放API可以做一些比较有趣的东西,本次调用高德开放api实时获取你想知道的道路拥堵状况 工具及技术: Py ...

  7. js调用高德API获取所在当前城市

    可以在js代码中直接调用API接口,获取所处当前城市信息,代码如下: <script type="text/javascript">function getCurren ...

  8. vue 地理位置定位_Vue 通过调用百度API获取地理位置-经度纬度省份城市

    一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...

  9. 调用ins api获取个人照片信息

    最近想要把ins获取到的个人照片信息放到博客中去,没想到ins的api还有一点坑,记录一下. 注册client 为了获取个人信息,我们首先就是要获取token,获取token之前,需要先注册一个cli ...

  10. 调用雅虎API获取全球天气

    雅虎官方API文档: https://developer.yahoo.com/weather/documentation.html 雅虎获取授权key网址(免费获取): https://develop ...

最新文章

  1. R语言学习笔记(十一):广义线性模型
  2. Python编程基础:第四十五节 方法链Method Chaining
  3. java spring事务管理系统_Java Spring-事务管理概述
  4. 一生里和你爱的人做完这50件事
  5. arcgis api for flex 开发入门(七)Geometry service 的使用
  6. 系统学习NLP(四)--数据平滑
  7. 数据结构和算法:线性表链式存储的简单实现
  8. 详细解说“黑客”们热衷的热门抓鸡技术
  9. Clickhouse 实现row_number、dense_rank
  10. 线性和EWMA指数加权移动平均模型
  11. 阿里天池大数据竞赛——口碑商家客流量预测 A
  12. TMS320F280049C 学习笔记16 比较器子系统(CMPSS)
  13. kic炉温测试软件中文版,KIC炉温测试仪-KIC2000炉温测试
  14. 无形胜有形——0day破解组织探秘
  15. 华钜同创:拯救你的亚马逊销量!你需要知道这些技巧
  16. 什么是HTTP代理?HTTP代理的作用
  17. 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(9月7日~9月13日)...
  18. 分立式数码管循环显示数字0到9.
  19. ASRT中文语音识别系统
  20. S2B2C模式学习总结

热门文章

  1. visio 绘图矢量图素材网站
  2. 新手上路,Python黑帽子学习笔记从此开篇
  3. BP神经网络预测matlab程序销售量预测
  4. 防止百度网盘和谐/暗中观察我的资源
  5. Servlet+JSP实现简易购物车功能
  6. Linux系统下Java程序读取配置文件
  7. STM32固件库编程入门
  8. R语言文本分析|利用jiebaR进行分词与词频统计
  9. Coin3D三维可视化教程2
  10. cmder中文乱码问题