Пример #1
0
    def post(self):
        request_token = self.request.get("token")
        request_token_secret = self.request.get('token_secret')
        if not request_token:
            self.response.content_type = 'application/json'
            responseJson = {'message': 'invalid parameter'}
            self.response.write(json.dumps(responseJson))
            return

        # memcacheへ認証情報を設定
        from tweepy import oauth
        access_token = oauth.OAuthToken(request_token, request_token_secret)
        cookie = set_uuid(self)
        memcache.set(cookie['sid'].value, access_token, SESSION_EXPIRE) #@UndefinedVariable

        # DBへユーザ情報を登録
        twitter_user = get_twitter_data(cookie)
        user = User.get_or_insert(User.create_key(twitter_user['id']),
                                  userId=twitter_user['id'])
        user.accessToken = access_token.key
        user.accessSecret = access_token.secret
        user.screenName=twitter_user['screen_name']
        user.image=twitter_user['profile_image_url']
        user.put()

        self.response.content_type = 'application/json'
        responseJson = {'message': 'success',
                        'user': {'id': user.userId,
                                 'image': user.image}}
        self.response.write(json.dumps(responseJson))
        return
Пример #2
0
 def post(self):
     stageNo = strToInt(self.request.get("stageNo"))
     logging.info('stageNo=' + str(stageNo))
     if stageNo is 0:
         logging.error('invalid parameter')
         return
     stage = KyouenPuzzle.query(KyouenPuzzle.stageNo == stageNo).get()
     cookie = get_cookie()
     user = get_user(cookie)
     if not user:
         user = User.get_or_insert(User.create_key('0'),
                                   userId='0',
                                   screenName='Guest',
                                   image='http://kyouen.app/image/icon.png')
     stage_user = StageUser.gql('WHERE stage = :1 AND user = :2', stage.key, user.key).get()
     if not stage_user:
         # 存在しない場合は新規作成
         stage_user = StageUser(stage=stage.key,
                                user=user.key,
                                clearDate=datetime.datetime.today())
         # 新規クリア時はUser.clearStageCountをインクリメント
         count = user.clearStageCount
         if not count:
             count = StageUser.gql('WHERE user = :1', user.key).count()
         user.clearStageCount = count + 1
         user.put()
     else:
         stage_user.clearDate = datetime.datetime.today()
     stage_user.put()
Пример #3
0
    def get(self):
        request_token_key = self.request.get("oauth_token")
        request_verifier = self.request.get('oauth_verifier')
        if not request_token_key:
            self.redirect('/')
            return

        request_token = RequestToken.gql("WHERE token_key=:1", request_token_key).get()
        request_token.key.delete()

        auth = tweepy.OAuthHandler(Const.CONSUMER_KEY, Const.CONSUMER_SECRET)
        auth.set_request_token(request_token.token_key, request_token.token_secret)
        access_token = auth.get_access_token(request_verifier)
        cookie = get_cookie()
        memcache.set(cookie['sid'].value, access_token, SESSION_EXPIRE) #@UndefinedVariable

        twitter_user = get_twitter_data(cookie)
        user = User.get_or_insert(User.create_key(twitter_user['id']),
                                  userId=twitter_user['id'])
        user.accessToken = access_token.key
        user.accessSecret = access_token.secret
        user.screenName=twitter_user['screen_name']
        user.image=twitter_user['profile_image_url']
        user.put()

        self.redirect('/')