def is_revoked(self): try: # Use a non-cached API fail_whale(TwitterApi(self.access_token).GetUserInfo)() except HTTPError, e: if e.code == 401: return True raise
def callback(self, request): """ View that gets the oauth_token from Twitter and signs in a User. Note: You must set this callback URL in Twitter's Application Details page. Twitter ignores OAuth's oauth_callback option. """ # Ensure that the user came in through signin(). request_token = request.twitter_request_token if request_token is None: return self._redirect_to_login(request=request) # Ensure that the session's token matches Twitter's token. if request_token.key != request.GET.get('oauth_token'): remove_tokens(request) return self._redirect_to_login(request=request) # Save the access token in the session. api = TwitterApi(request_token) try: access_token = fail_whale(api.getAccessToken)() except HTTPError, e: if e.code == 401: # Restart the authentication process, as Twitter thinks # we're unauthorized. return HttpResponseRedirect(reverse('twitter_signin')) raise
def update_userinfo(self, userinfo=None): if userinfo is None: userinfo = fail_whale(self.api().GetUserInfo)() userinfo_json = userinfo.AsJsonString() if self.userinfo_json != userinfo_json: self.userinfo_json = userinfo_json return userinfo
def get_site_friends(self, user=None): """ Returns a queryset of Users who are Twitter friends of `user`. If `user` is None, default to this User. """ friends = fail_whale(self.api().GetFriends)(user=user, cursor=None) return self.__class__.objects.filter( twitter_id__in=[f.id for f in friends])
def get_site_friends(self, user=None): """ Returns a queryset of Users who are Twitter friends of `user`. If `user` is None, default to this User. """ friends = fail_whale(self.api().GetFriends)(user=user, cursor=None) return self.__class__.objects.filter( twitter_id__in=[f.id for f in friends] )
def signin(self, request, success_url=None): """ View that redirects a user to the Twitter authorization page. `success_url` is a URL that the User will be redirected to, if they authorize Twitter OAuth. If None, then defaults to settings.LOGIN_REDIRECT_URLNAME or LOGIN_REDIRECT_URL. """ if success_url is None: success_url = next_url(request) else: success_url = str(LazyReverse(success_url)) # Get a request token. twitter = TwitterApi() request_token = fail_whale(twitter.getRequestToken)() # Save success_url, along with the request token, in the session. set_request_token(request, request_token, success_url) # Redirect to Twitter's sign in URL. url = fail_whale(twitter.getSigninURL)(request_token) return HttpResponseRedirect(url)
def get_site_followers(self): """Returns a queryset of Users who are Twitter followers of this User.""" followers = fail_whale(self.api().GetFollowers)(cursor=None) return self.__class__.objects.filter( twitter_id__in=[f.id for f in followers] )
def get_site_followers(self): """Returns a queryset of Users who are Twitter followers of this User.""" followers = fail_whale(self.api().GetFollowers)(cursor=None) return self.__class__.objects.filter( twitter_id__in=[f.id for f in followers])