Django开发中整合新浪微博API
2012-07-04 23:17
155 查看
原文链接:http://qinxuye.me/article/sina-weibo-api-in-developing-diango/
Update:如果想了解更多第三方帐号登录,请看这篇文章。
随着新浪微博用户日益增加,我们有时候会考虑在自己的网站中整合新浪微博。比如说我现在的独立博客。
在我的博客中做到整合主要就这几方面:我写一篇文章,就会同步发送至微博。同时呢,用户可以用微博帐号登录,并且可以选择把对文章的评论,同步评论到文章的微博。另外,用户可以选择是否把博客留言同步至新浪微博。
新浪微博开放平台地址在这里。文档地址在这里。
首先要涉及的问题,就是用户用新浪微博帐号登录的问题,即授权机制。基本方法有两种:
OAuth
Basic auth(需要强调的是,微博开放平台将于6月1日正式停止Basic Auth的支持。因此,此种方法不作讨论了,其实需要用户名和密码的方式本身就不安全。)
OAuth新浪官方的文档在这里。想要了解OAuth技术说明的可以访问官方网站。
其实,OAuth的流程还是很简单的。大致如下:
向API调用获得request token。
将用户重定向到授权页(auth url)。
用户输入用户名和密码完成授权。重定向到Callback_url。
用request token向新浪微博换取access token。
完成。
大致了解了OAuth的原理以后,由于我们是整合至Django,自然需要下载微博SDK的Python版。
不过,在全部开始前,你得先向新浪微博申请你的应用。申请地址在这里。这里要强调的是,日后应用需要申请审核,因为只有审核通过后,在来源中才能显示个性的应用名。所以,在申请的时候,注意应用介绍信息的完整,以及应用分类的填写正确。(在本例中,我们的分类是合作网站。)
申请完成以后将会得到你的应用的App Key和App Secret。
回到授权用户登录的话题。允许新浪微博帐号接入,首先我们需要在urlpatterns中添加几个URL。如下:
接着,我们开始views文件。代码:
在完成了授权的代码之后,接着我们就要知道如何向新浪微博作发送消息等操作了。其实,在下载的SDK下的exanples文件夹(没错,其实是examples,这英文水平,吐槽不能)中的例子基本上拿来改改就可以直接使用了。拿oauthSetTokenUpdate.py来说,我们就可以照着这么写:
运行这个程序就会提示一个URL链接,在浏览器里打开这个链接,并且给予访问权限,就会拿到一串PIN码。把这个PIN码输上去,就会发送一条推了,并且还会显示用户的Access token key和Access token secret。
不过呢,这么做是不是有点太nerd了。其实我们只要知道Access token key和Access token secret之后,就可以直接用它们来创建API对象了:
这个时候,我们可以重构一下代码,写一个weibo类,来实现以上的功能,并且实现一些api的操作。
不知道读者还记得我们上面授权部分的代码。在login_check方法代码里,有这样一句话。
授权用户的access_token已经保存在session变量中。因此,在用户授权完成时,我们就可以直接使用保存在session中的access_token,像这样:
以上的例子中只使用了部分API,完整的API手册参考这里。
最后,本文参考两篇文章:《django接入新浪微博OAuth》,以及《新浪微博API开发简介之Python篇》
Update:如果想了解更多第三方帐号登录,请看这篇文章。
随着新浪微博用户日益增加,我们有时候会考虑在自己的网站中整合新浪微博。比如说我现在的独立博客。
在我的博客中做到整合主要就这几方面:我写一篇文章,就会同步发送至微博。同时呢,用户可以用微博帐号登录,并且可以选择把对文章的评论,同步评论到文章的微博。另外,用户可以选择是否把博客留言同步至新浪微博。
新浪微博开放平台地址在这里。文档地址在这里。
首先要涉及的问题,就是用户用新浪微博帐号登录的问题,即授权机制。基本方法有两种:
OAuth
Basic auth(需要强调的是,微博开放平台将于6月1日正式停止Basic Auth的支持。因此,此种方法不作讨论了,其实需要用户名和密码的方式本身就不安全。)
OAuth新浪官方的文档在这里。想要了解OAuth技术说明的可以访问官方网站。
其实,OAuth的流程还是很简单的。大致如下:
向API调用获得request token。
将用户重定向到授权页(auth url)。
用户输入用户名和密码完成授权。重定向到Callback_url。
用request token向新浪微博换取access token。
完成。
大致了解了OAuth的原理以后,由于我们是整合至Django,自然需要下载微博SDK的Python版。
不过,在全部开始前,你得先向新浪微博申请你的应用。申请地址在这里。这里要强调的是,日后应用需要申请审核,因为只有审核通过后,在来源中才能显示个性的应用名。所以,在申请的时候,注意应用介绍信息的完整,以及应用分类的填写正确。(在本例中,我们的分类是合作网站。)
申请完成以后将会得到你的应用的App Key和App Secret。
回到授权用户登录的话题。允许新浪微博帐号接入,首先我们需要在urlpatterns中添加几个URL。如下:
urlpatterns = patterns('projectname.appname.views',
url(r'^log/$', 'login', name='log'),
url(r'^logincheck/$', 'login_check', name='logcheck'),
url(r'^logout/$', 'logout', name='logout'),
)
接着,我们开始views文件。代码:
不过呢,这么做是不是有点太nerd了。其实我们只要知道Access token key和Access token secret之后,就可以直接用它们来创建API对象了:
最后,本文参考两篇文章:《django接入新浪微博OAuth》,以及《新浪微博API开发简介之Python篇》
相关文章推荐
- Django开发中整合新浪微博API
- Django开发中整合新浪微博API
- django开发整合微信API
- 新浪微博API开放平台进行程序开发第一步(java)
- Android新浪微博开发(三)完结篇之调用新浪微博API实现信息展示
- 新浪微博API开发WEB应用
- Android 新浪微博api开发
- Django1.7.2+Bootstrap3.3.0 整合一:Python 3.4.2 开发环境搭建
- Owin+web api 整合开发+配置中心心得体会
- 新浪微博API开发简介之PHP基础篇-用户授权
- 新浪微博API开发简介之PHP基础篇-用户授权
- 【windows8开发】现有代码移植到Metro App所必须的API整合
- API开发第五篇:服务端整合支付宝快捷移动支付接口
- 【windows8开发】现有代码移植到Metro App所必须的API整合
- 新浪微博API java开发
- Django开发中使用Google custom search API
- Java使用新浪微博API开发微博应用的基本方法
- 新浪微博API调试工具开发
- 新浪微博API开发简介之用户授权(PHP基础篇)