用GAE(python)创建了一个Twitter机器人(带有大量参考文献)
已完成的产品
使用 GAE(python)开发的 Twitter 机器人。
我撰写这篇投稿的原因
自上个月开始,我在工作中越来越多地使用GAE(Python)的机会,但我从未尝试过从头开始使用GAE(Python)创建一个真正的应用(只有在helloworld和官方教程中的guestbook这样的例子)。所以,我决定利用这个机会尝试制作一个Twitter BOT(因为对于批处理功能等理解还很薄弱)。
这个机器人是在一款名为《英雄联盟》的海外知名游戏中,自动将注册用户最近参与的对战比赛中其他召唤师名称发布到Twitter上。使用tweepy进行Twitter的OAuth认证,通过RIOT API获取《英雄联盟》的比赛结果和召唤师名称,并将结果存储在ndb中。
实施的步骤
-
- Tweepyを使ってTwitterのOAuth認証を行なって、そのあとにmodelUserにTwitterのアクセストークンなどの情報を格納する
-
- /registrationのフォーム画面にて自分のサモナーネームを登録し、RIOT APIを経由して取得したサモナーネームやアカウントIdなどをmodelTaskに格納する
- taskqueue(push)を使って、modelTaskに含まれるaccountIdを使って直近の試合において参加したサモナーの名前をAPIから引っ張ってきて、その参加者を4名だけTwitterで自動投稿させる
然而,在实施上述项目时,很少有GAE(使用python)的实现示例可供参考,而且即使有,版本等信息也太过陈旧,无法正常运行的情况很常见,这给我带来了很多困扰。因此,这次我在参考文献中提供了大量的参考URL…!总之,我尽量涵盖了自己遇到的所有问题,希望您能参考一下。
此外,我也在Github上提供了真正的成品源代码和使用方法,如果您想先进行行为验证,可以参考Github上的README,希望对您的学习有所帮助。
参考资料
在创建这个BOT之前参考的主要网站是GAE/P+Tweepy+RIOT API创建Twitter BOT服务!(上篇)
通过GAE/P+Tweepy+RIOT API创建Twitter BOT服务!(后续部分)
我在Riot API上尝试获取账户信息。
「获取Twitter和RIOT API访问密钥的方法」
整理了自Twitter API注册(账户申请方法)到获得批准的步骤汇总※截止至2019年8月的信息。
我尝试使用Riot API获取帐户信息。
「在我苦于安装Tweepy时查看的网站」
使用Flask和Tweepy创建Google App Engine的Twitter Bot
在Google App Engine(Python)中使用第三方库的方法提示
在GAE/Py中遇到”ImportError: No module named _winreg”错误的原因和解决方法。
如果不安装setup.cfg,将在lib文件夹使用pip install时报错,这在Stack Overflow上已经被证实。
在GAE内置的第三方库列表表格中(可在app.yaml中安装的库)
如果想要将所有依赖都记录在一个名为 requirement.txt 的文件中并使用 pip 进行安装的人,请参考这里。
「在实施过程中遇到困难时帮了很大忙的网站」
解决requests相关的行为错误,只需要安装requests_toolbelt.adapters.appengine即可解决。
我在实践Tweepy的OAuth1a认证时参考的网址是什么?
在批处理时,同一条推文无法连续自动发布,会抛出错误,请在验证时注意。
对于想了解Twitter的OAuth认证的人来说,
最简单易懂的OAuth解释
在应用开发中需要了解的认证技术——OAuth 1.0 + OAuth 2.0 + OpenID Connect
总结
这次我尝试使用GAE(Python)来制作Twitter BOT。由于缺乏具体的实施示例,我在与taskqueue和ndb等细节规范的官方参考资料对抗中成功完成了实施。
如果您在工作或者兴趣爱好中有机会使用GAE(Python),我希望您可以参考这里的内容来进行实现并加深对其的理解。也希望您能将其作为培训的资源进行充分利用(在从Github克隆时,请务必为其点亮星星!)
当完成初期实施时的感想
-
- ルーティングはroutes.pyで一つのファイルにまとめるべきだった
-
- memcacheを使ってもよかったかもしれない
-
- フロント画面を綺麗にしたかった
- ndb周りの理解が思った以上に不十分だった