# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#新浪微博api研究 '''
3.SDK的使用规则:
1)使用微博API,需要通过用户的授权,获取用户的授权码code;
2)该SDK调用API的方法名称映射规则有以下几种,以API中的statuses/public_timeline接口为例:
a)client.get.statuses__public_timeline(),将"/"换为两个"_",注意是两个。同时根据请求是POST还是GET,使用get或者post;
b)client.statuses__public_timeline(),对于GET方式,在调用API时,可以将get省略;
c)client.statuses.public_timeline.get(),将API中的"/"更换为".",同时最后指定是get方式还是post方式。 3)参数问题:如果API中有参数指定,则在方法中提供参数;
4)返回值:新浪返回的结果是JSON,但是SDK将其封装成了JSON对象,直接通过返回结果调用相应的属性即可。
'''
import os
import sys
import weibo
import webbrowser
import json,urllib,urllib2 APP_KEY='xxxxxx'
APP_SECRET='xxxxxxxxxxxxxxxxxxx'
CALLBACK_URL='http://www.cnblogs.com/dengyg200891'#这个是设置回调地址,必须与那个”高级信息“里的一致 #请求用户授权的过程
client = weibo.APIClient(APP_KEY, APP_SECRET,CALLBACK_URL)
#print client authorize_url = client.get_authorize_url(CALLBACK_URL)
'https://api.weibo.com/oauth2/authorize?redirect_uri=http%3A//www.cnblogs.com/dengyg200891&response_type=code&client_id=3707867442' #打开浏览器,需手动找到地址栏中URL里的code字段
webbrowser.open(authorize_url) #进入到授权页面,如下图,请点击‘授权’——在浏览器地址中可查看到code字段所对应的值。
#code会随时变化,用一段时间发现无效了请及时更换。
#code='08ae262f84ae74fc3dfdc02f98ac12f3'
code=raw_input('请输入code:') #获得用户授权
r = client.request_access_token(code)
print r
#{'access_token': u'2.00PxVPDEahpvCE5d8093b5a508MXEa', 'expires': 1603888639, 'expires_in': 1603888639, 'uid': u'3712558093'} #access_token
access_token=r.access_token
expires=r.expires
client.set_access_token(access_token, expires) #设置accsess_token,client可以直接调用API了
#发消息
#client.statuses.update.post(status='通过Python SDK发微博') #设置accsess_token,client可以直接调用API了
#获取@当前用户的最新微博的ID
statuses = client.statuses__mentions__ids()
print statuses
'''
{'interval': 0,
'hasvisible': False,
'total_number': 3,
'previous_cursor': 0,
'next_cursor': 0,
'statuses': [u'3884210072698912', u'3853907086305751', u'3853671818993765']}
''' #设置accsess_token,client可以直接调用API了
#发布一条新微博,可以实现自动发微博
#content='xiaodeng'
#data = {'access_token':access_token,'status':content}
#data=urllib.urlencode(data)
#reqUrl = "https://api.weibo.com/2/statuses/update.json"
#req = urllib2.Request(url = reqUrl,data =data)
#urllib2.urlopen(req,timeout=5)
print 'OK' #设置accsess_token,client可以直接调用API了
#获取用户关注的用户UID列表,请注意不是粉丝而是关注
#该api有使用次数限制
#https://api.weibo.com/2/friendships/friends/ids.json
#get_results = client.friendships__friends__ids()
#print get_results
'''
{
'total_number': 47,
'previous_cursor': 0,
'ids': [1949305184, 1741045432, 1904178193, 1751627082, 1761587065, 2678120877L, 1826792401, 1830008825, 1640328892, 5305630013L, 5608433557L, 5270199617L, 5098152832L, 2141823055],
'next_cursor': 0
}
total_number:关注用户数量
ids:关乎用户的ID
''' print 'OK' #根据微博ID删除指定微博
#reqUrl = "https://api.weibo.com/2/statuses/destroy.json"
#data = {'access_token':access_token,'id':'3853907086305751'} #id,写入微博的ID
#data=urllib.urlencode(data)
#req = urllib2.Request(url = reqUrl,data =data)
#urllib2.urlopen(req)
print 'OK' #批量获取用户的粉丝数、关注数、微博数
#https://api.weibo.com/2/users/counts.json
#注意该url中间有一个2,这样的url一般可以用下面的方式来运用api。
get_results = client.users__counts(uids='') #1949305184是微博桌面
#print get_results
#[{'statuses_count': 643, 'friends_count': 297, 'private_friends_count': 0, 'followers_count': 2499195, 'pagefriends_count': 2, 'id': 1949305184}] print 'OK' #根据用户ID获取用户信息
#请求方式:get
#https://api.weibo.com/2/users/show.json
#注意该url中间有一个2,这样的url一般可以用下面的方式来运用api。
get_results = client.users__show(uid='') #1949305184是微博桌面
#print get_results print 'OK' #获取某个用户最新发表的微博列表,默认查询最近发布的5篇微博,可以设置查询的篇数(注意查看参数列表的---count参数)
#此接口最多只返回最新的5条数据,官方移动SDK调用可返回10条;
#如果是需要查询其他微博好友,则需要添加参数来解决 #https://api.weibo.com/2/statuses/user_timeline.json
#注意该url中间有一个2,这样的url一般可以用下面的方式来运用api。
get_results = client.statuses__user_timeline(count=1)
#print get_results print 'OK'

【重要】新浪微博api研究的更多相关文章

  1. python编程之API入门: (二)python3中使用新浪微博API

    回顾API使用的流程 通过百度地图API的使用,我理解API调用的一般流程为:生成API规定格式的url->通过urllib读取url中数据->对json格式的数据进行解析.下一步,开始研 ...

  2. 以短链服务为例,探讨免AppKey、免认证、Ajax跨域调用新浪微博API

    新浪微博的API官方提供了很多种调用方式,支持编程的,归根结底就是两种: 1.基于Oauth协议,使用Open API.(http://open.weibo.com/wiki/%E6%8E%88%E6 ...

  3. java parse 带英文单词的日期字符串 转 date (转化新浪微博api返回的时间)

    拂晓风起 专注前端技术cocos2d.js.flash.html5,联系:kenkofox@qq.com.如果读者要找腾讯工作机会,请不吝推荐简历. 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔 ...

  4. 新浪微博API使用初步介绍——解决回调地址的问题

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #新浪微博API使用初步介绍——解决回调地址的问题 #http://blog.csdn.net/monsion ...

  5. 新浪微博API生成短链接

    通过新浪微博API,生成短链接,支持一次性转多个长链接 什么是短链接 短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串. 短链接服务 国内各大微博都推出了自己的短链接 ...

  6. 新浪微博API Oauth2.0 认证

    原文链接: http://rsj217.diandian.com/post/2013-04-17/40050093587 本意是在注销账号前保留之前的一些数据.决定用python 爬取收藏.可是未登录 ...

  7. 新浪微博API的使用Python

    本文记录了用新浪微博官方Python SDK调用API进行开发的流程. 准备工作 申请成为开发者并创建一个应用: 首先要有一个新浪微博的账号,然后去新浪微博开放平台(http://open.weibo ...

  8. 解决新浪微博API调用限制 突破rate_limit_status瓶颈

    新浪微博开放平台API的调用和TWITTER接口一样,都是受限的,以小时为单位进行限定. 他有两个限制原则 1.用户不登录基于IP的限制,每小时1000次 2.用户登录了基于用户的限制,每小时1000 ...

  9. 搜索引擎--范例:新浪微博API获取最近的微博--statuses/public_timeline

    新浪微博平台跟新浪SAE一样,都是一个字“坑”,好了,不再吐槽,直入主题 1:直接登录新浪,添加网站,就直接添加我们在新浪SAE上创建的应用即可 2:填写信息,ICP备案信息号填写sinaapp.co ...

随机推荐

  1. failed to get the task for process XXX(解决方案)

    引人: iOS真机调试程序,报如下错误信息: failed to get the task for process XXX 原因: 证书问题,project和targets的证书都必须是开发证书,AD ...

  2. 浅谈Android RecyclerView

    Android RecyclerView 是Android5.0推出来的,导入support-v7包即可使用. 个人体验来说,RecyclerView绝对是一款功能强大的控件. 首先总结下Recycl ...

  3. 算法:基于 RingBuffer 的 Queue 实现《续》

    背景 上篇实现了一个简单的队列,内部使用了 _count 计数,本文采用另外一种模式,不用 _count 计数. RingBuffer 不用 _count 计数的话,为了区分队列的满和空,需要在数组中 ...

  4. 常用的快速Web原型图设计工具

    做产品原型是非常重要的一个环节,做产品原型就会用使用各式各样的工具.在PM朋友们的推荐下使用了很多各种各样的软件,当然选择一款真正适合自己的工具也是很重要,在这里就把我使用过的工具都介绍一下. 主要有 ...

  5. APP的上线和推广——线上推广渠道

    本文版权归个人所有,如需转载请注明出处http://www.cnblogs.com/PengLee/p/4637080.html 目录 应用商店 互联网开放平台 软件下载中心 媒体社交平台 刷榜推广 ...

  6. TF卡和SD卡的区别

    小型存储设备凭借低廉的价格.多样化的品种.实用等特性大量充斥在大家身边,比如智能手机手机上.数码照相机上.游戏机上(一般是掌机)等都小型电子设备都频繁的使用到这种统称为SD的产品,比如TF卡和SD卡( ...

  7. bzoj 1975 [Sdoi2010]魔法猪学院

    1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1758  Solved: 557[Submit][Statu ...

  8. <mvc:annotation-driven />做了什么

    <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案.<mvc:annotation-dri ...

  9. 数学图形之莫比乌斯带(mobius)

    莫比乌斯带,又被译作:莫比斯环,梅比斯環或麦比乌斯带.是一种拓扑学结构,它只有一个面(表面),和一个边界.即它的正反两面在同一个曲面上,左右两个边在同一条曲线上.看它的名字很洋气,听它的特征很玄乎,实 ...

  10. Informatica 常用组件Lookup缓存之四 使用不高速缓存的查找或静态高速缓存

    默认情况下,在为高速缓存配置查找转换时,PowerCenter 将创建静态查找高速缓存.PowerCenter 将在处理第一个查找请求时创建高速缓存.它将根据查找条件为传递给转换的每行查询高速缓存.P ...