当前位置: 首页>>代码示例>>Python>>正文


Python APIClient.get_access_token方法代码示例

本文整理汇总了Python中weibo.APIClient.get_access_token方法的典型用法代码示例。如果您正苦于以下问题:Python APIClient.get_access_token方法的具体用法?Python APIClient.get_access_token怎么用?Python APIClient.get_access_token使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在weibo.APIClient的用法示例。


在下文中一共展示了APIClient.get_access_token方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get

# 需要导入模块: from weibo import APIClient [as 别名]
# 或者: from weibo.APIClient import get_access_token [as 别名]
    def get(self):
        user = users.get_current_user()
        args = dict(client_id=FACEBOOK_APP_ID, redirect_uri="http://gplus2ft.appspot.com/link",scope='publish_stream')

        template_values = {}

        if self.request.get('mode')=='gplus':
            userlimit=10
            cfgvalue=StorageByKeyName(MyRealCfg, 'userlimit', 'cfgvalue').get()
            if not cfgvalue:
                StorageByKeyName(MyRealCfg, 'userlimit', 'cfgvalue').put('10')
            else:
                userlimit=int(cfgvalue)
            foo = db.GqlQuery("SELECT * FROM MyCfg")
            my_count = foo.count()
            if my_count>=userlimit:
                self.redirect("/")
                return
            flow = pickle.loads(memcache.get(user.user_id()))
            if flow:
                credentials = flow.step2_exchange(self.request.params)
                http = httplib2.Http()
                http = credentials.authorize(http)
                service = build("plus", "v1", http=http)
                me = service.people().get(userId='me').execute(http)
                StorageByKeyName(MyCfg, user.user_id(), 'gplusid').put(me['id'])
                StorageByKeyName(MyCfg, user.user_id(), 'credentials').put(credentials)
                StorageByKeyName(MyCfg, user.user_id(), 'gplusname').put(user.nickname())
                self.redirect("/link")
                return
        elif self.request.get('mode')=='twitter':
            consumer_key = TWITTER_KEY
            consumer_secret = TWITTER_SECRET
            callback_url = TWITTER_CALLBACK
            client = oauth.TwitterClient(consumer_key, consumer_secret, callback_url)
            auth_token = self.request.get("oauth_token")
            auth_verifier = self.request.get("oauth_verifier")
            user_info = client.get_user_info(auth_token, auth_verifier=auth_verifier)
            StorageByKeyName(MyCfg, user.user_id(), 'twitterid').put(str(user_info['id']))
            StorageByKeyName(MyCfg, user.user_id(), 'twitteruname').put(user_info['username'])
            StorageByKeyName(MyCfg, user.user_id(), 'twittertoken').put(user_info['token'])
            StorageByKeyName(MyCfg, user.user_id(), 'twittersecret').put(user_info['secret'])
            self.redirect("/link")
            return
        elif self.request.get('mode')=='sina':
            oauth_token = self.request.get('oauth_token')
            oauth_verifier = self.request.get('oauth_verifier')
            oauth_token_secret = memcache.get('%s_sina_request_token' % (user.user_id()))
            request_token = OAuthToken(oauth_token, oauth_token_secret, oauth_verifier)
            client = APIClient(app_key=SINA_KEY, app_secret=SINA_SECRET, token=request_token)
            access_token = client.get_access_token()
            client = APIClient(SINA_KEY, SINA_SECRET, access_token)
            account = client.account__verify_credentials()
            logging.info(account)
            StorageByKeyName(MyCfg, user.user_id(), 'sinatoken').put(access_token.oauth_token)
            StorageByKeyName(MyCfg, user.user_id(), 'sinasecret').put(access_token.oauth_token_secret)
            StorageByKeyName(MyCfg, user.user_id(), 'sinaname').put(account.name)
            self.redirect("/link")
            return
        elif self.request.get('code'):
            verification_code = self.request.get("code")
            args["client_secret"] = FACEBOOK_APP_SECRET
            args["code"] = self.request.get("code")
            res=urllib.urlopen(
                "https://graph.facebook.com/oauth/access_token?" +
                urllib.urlencode(args)).read()
            response = cgi.parse_qs(res)
            logging.info("rsp is:"+str(response))
            if response.has_key("access_token"):
                access_token = response["access_token"][-1]
                profile = json.load(urllib.urlopen(
                    "https://graph.facebook.com/me?" +
                    urllib.urlencode(dict(access_token=access_token))))
                StorageByKeyName(MyCfg, user.user_id(), 'facebookuname').put(profile["name"])
                StorageByKeyName(MyCfg, user.user_id(), 'facebooktoken').put(access_token)

            self.redirect("/link")
            return

        credentials = StorageByKeyName(MyCfg, user.user_id(), 'credentials').get()
        if credentials:
            template_values["gplus"]=user.nickname()

        twittertoken=StorageByKeyName(MyCfg, user.user_id(), 'twittertoken').get()
        if twittertoken:
            template_values["twitter"]=StorageByKeyName(MyCfg, user.user_id(), 'twitteruname').get()

        facebooktoken=StorageByKeyName(MyCfg, user.user_id(), 'facebooktoken').get()
        if facebooktoken:
            template_values["facebook"]=StorageByKeyName(MyCfg, user.user_id(), 'facebookuname').get()
            
        sinaname=StorageByKeyName(MyCfg, user.user_id(), 'sinaname').get()
        if sinaname:
            template_values["sina"]=sinaname

        #sql="SELECT * FROM MyCfg"
        #confs = db.GqlQuery(sql)
        #confinfo=""
        #for conf in confs:
        #    if conf.gplusid:
#.........这里部分代码省略.........
开发者ID:zuoang,项目名称:g2fts,代码行数:103,代码来源:main.py


注:本文中的weibo.APIClient.get_access_token方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。