使用twitter应用程序api和neo4j构建tweets图
nts-skazazes的Python项目详细描述
Neo4J TwitterAPI拖缆
将与术语列表相关的tweets写入图形数据库。使用twitter应用程序api和neo4j
设置
从pypi安装
pip install nts-skazazes
状态
尽管传入的twitter api流可以成功地写入neo4j数据库,但是程序中没有错误处理,因此表单使用的包没有得到正确处理,导致程序崩溃。也就是说,如果配置正确,pro似乎可以正常工作。
NTS的工作原理
nts使用tweepy“流”从twitter应用程序api接收与指定的术语列表相关的实时tweets。NTS然后使用py2neo包将这些tweets添加到带有相关数据的neo4j图中。
tweet s、users、tweet sources、url和hashtags都被构造成py2neo节点(边),并在提交到图之前为它们分配了相关的关系(顶点)。提交时,将使用neo4j merge来聚合所有内容
图形模型
图形模式与官方的“俄罗斯巨魔”neo4j沙箱中使用的模式非常相似,添加了用户转发->;用户关系,删除了巨魔节点和关联关系。
配置
有两种配置方法:
通过从confighandler模块导入config类,可以使用set-settings方法(需要具有与ini文件中的设置等效的键的字典)或单个setter方法。如果使用此替代方法,则必须在初始化其他包对象之前调用settings方法,因为它们依赖于这些设置。
您可以直接向graphhandler和twitterstreamhandler提供一个字典,其中包含与ini文件中的设置等效的键。
推特
为了使用twitter api,用户需要在dev.twitter.com以twitter应用程序开发人员的身份进行应用(根据我所知,应用程序可以立即被接受),然后在开发人员仪表板中注册一个应用程序。创建应用程序后,导航到它的“密钥和令牌”页面并生成所需的密钥/令牌。
neo4j
用户还必须能够访问neo4j服务器。这可以位于本地计算机上,也可以位于远程服务器上应用了需要正确设置的远程计算机上,以允许入站远程连接。我已经测试了本地和远程服务器实例,但只使用neo4j的二进制协议“bolt”;有一个http和http s协议可用,应该可以正常工作,但我从未使用过它,所以ymmv。使用的协议是通过用户提供的neo4j_主机设置来确定的。一个螺栓示例是'bolt://xxx.xxx.xxx.xxx:7687'
应用程序还需要一个可以访问服务器的用户,我建议一个仅用于应用程序,另一个用于用户在Web仪表板上使用,因为我在共享同一帐户时遇到了授权问题。
所需设置如下:
{'API_KEY':'Consumer API Key''API_SECRET':'Consumer API Secret Key''ACCESS_TOKEN':'Access Token''ACCESS_TOKEN_SECRET':'Access Token Secret''NEO4J_HOST':'Neo4J Server Access URL (Only Bolt connections have been tested)''NEO4J_USER':'Neo4J Username''NEO4J_PASSWORD':'Neo4J Password''NEO4J_PORT':'Neo4J Port''NEO4J_SCHEME':'Neo4J Scheme (http, https, bolt)'}