我誓言与Facebook,谷歌和Twitter合作;但是,我遇到后者的问题,它每次使用“授权”URL而不是“身份验证”。结果是每次要求用户授权我的应用程序。一旦应用程序获得授权,Google和FB都会在登录时再次被询问。如果用户登录到其中一个服务,如果是这样(并且他们已经授权我的应用程序),它会在幕后知道它会记录它们立即进入我的应用程序使用Twitter,每次都会将它们带到授权屏幕。
我知道这是由于我使用Twitter的流程,其中说:redirect_url = auth.get_authorization_url()后跟self.redirect(redirect_url)
上面的关键是“授权”,它不知道用户以前接受过我的应用程序。在Twitter中,我知道有一个复选框“允许此应用程序用于登录Twitter”。这是检查。我无法找到的是Tweepy的正确路径,它检查用户是否已经登录Twitter并且已经授权我的应用程序。
我确实保存了Twitter在第一次授权时向用户发回的令牌,但是,我不知道用户是谁,直到他们登录,所以我不能尝试使用这些令牌进行练习的初始部分。我应该注意,在这个阶段我不必使用Google或FB的令牌。
可以以上述方式使用Tweepy还是我需要做其他事情?
谢谢!
答案 0 :(得分:3)
幸运的是,有一个非常简单的解决方案。调用api.get_authorization_url
时,只需将signin_with_twitter=True
指定为关键字参数即可。你的电话应该是这样的:
api.get_authorization_url(signin_with_twitter=True)
这会导致Tweepy使用“身份验证endpoint you mentioned, instead of the
授权”端点。