Twitter开发基础

【笔记】浅谈TwitterAPI

作者 Trekerz 日期 2017-03-02
Twitter开发基础

一、 访问Twitter的API(开发目的)

1. 问题

想要挖掘自己账号的数据,或者以开发为目的实用快速简单的API访问数据。

2. 解决方案

使用Python中Twitter包和应用设置中提供的OAuth 1.0a证书来获得API访问你自己数据的权限,不需要HTTP的重定向。

3. 讨论

​ Twitter实现了OAuth 1.0a,这是明确设计出的授权机制,这样用户可以授权第三方访问他们的数据而不需要提供用户名和密码。

​ 尽管访问自己的数据很方便,但这种捷径并不能用来访问别人的数据,你需要进行完整的OAuth流程才行。

二、 使用OAuth访问Twitter的API(产品目的)

1. 问题

你想使用OAuth使你的应用能够访问别的用户的数据。

2. 解决方案

使用twitter包实现“OAuth”流程。

3. 讨论

当请求访问用户数据时,你需要提供用户名和密码,这样Twitter就能提示用户关于的请求类型的消息。假设用户授权了你的应用,Twitter会重定向到你在应用设置中指定的回调URL并包含OAuth verifier,他需要用来交换访问令牌和访问令牌密码,他们和用户账号和用户密码结合使用,就能让你的应用访问到用户的数据。

三、 探索流行话题

1. 问题

想知道在一个特定的地域内,Twitter上流行什么话题。

2. 解决方案

Twitter上的Trends API使你能够获得特定地域内的流行话题。

3. 讨论

该API返回的流行话题是JSON格式的,并能够转换为标准的Python对象,然后使用列表推导式或相似的技术来操作数据。

四、 查找推文

1. 问题

想通过特定的关键字和查询条件来查找Twitter中的推文。

2. 解决方案

使用搜索API进行个性化查询。

3. 讨论

和搜索引擎的工作原理类似,Twitter的搜索API分批返回结果,摒弃额你可以通过count关键字参数配置每次返回的数目(最多200条)。但Twitter提供了一个cursor API,它能够很好地适应Twitter平台的动态实时性。

五、 构造方便的函数调用

1. 问题

想要绑定某些参数到函数调用中,并传递应用到函数中以简化你的编程模式。

2. 解决方案

使用Python的functools.partial来构造完整或部分的绑定函数,使之能够直接获得参数传递并被其他代码使用,而不需要传递额外的参数。

3. 讨论

尽管functools.partial并不是针对Twitter API才专有的设计模式,但它和twitter包以及本手册中的许多模式还有你编过的其它Python程序相结合是非常方便的。连续的传递引用可能非常麻烦,所以你会想构造一个仅满足部分参数的函数,这样你通过简单地传递剩下的参数就能调用该函数了。

六、 使用文本文件存储JSON数据

1. 问题

想要存储从Twitter API获取的少量数据,以便重复分析或者以存档为目的。

2. 解决方案

将数据以方便的JSON格式存储于文本文件中。

3. 讨论

当你只需要少量数据的时候,使用文本文件存储JSON数据其实是一种最佳实践,因为你可以最小化请求Twitter API的次数,避免可能遇到的频率限制问题。

七、 实用MongoDB存储和访问JSON数据

1. 问题

想要存储和访问Twitter API返回的JSON数据。

2. 解决方案

使用文档型数据库(比如MongoDB)以方便的JSON格式存储数据。

3. 讨论

如果数据比较多,那么文档型数据库就是很好的存储方式,因为这种数据库就是为了高效地存储JSON数据而设计的。MongoDB是一个健壮的文档型数据库,它提供了强大的查询操作和索引机制,这样就大幅度简化了你在Python代码中的分析。