예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
    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
예제 #4
0
    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
예제 #5
0
 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
예제 #6
0
 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
예제 #7
0
    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])
예제 #8
0
    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]
        )
예제 #9
0
    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)
예제 #10
0
    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)
예제 #11
0
 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]
     )
예제 #12
0
 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])