Example #1
0
    def _request(self, method, uri, kw, file_params):
        raw_qs, qs = QQWeibo.sign(method, uri, self.consumer_key,
                                  self.consumer_secret, self.token_secret,
                                  **kw)
        if method == "GET":
            full_uri = "%s?%s" % (uri, qs)
            resp, content = httplib2_request(full_uri, method)
        else:
            if file_params:
                from past.utils import encode_multipart_data
                body, headers = encode_multipart_data(raw_qs, file_params)
            else:
                body = qs
                headers = None
            resp, content = httplib2_request(uri,
                                             method,
                                             body,
                                             headers=headers)

        log.debug("---qq check result, status: %s, resp: %s, content: %s" %
                  (resp.status, resp, content))
        if resp.status != 200:
            raise OAuthLoginError(msg='get_unauthorized_request_token fail, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))
        return content
Example #2
0
    def _request(self, method, uri, kw, file_params):
        raw_qs, qs = QQOAuth1Login.sign(method, uri, self.consumer_key,
                                        self.consumer_secret,
                                        self.token_secret, **kw)
        print "+++++ sign:", raw_qs, qs
        if method == "GET":
            full_uri = "%s?%s" % (uri, qs)
            resp, content = httplib2_request(full_uri, method)
        else:
            if file_params:
                from past.utils import encode_multipart_data
                body, headers = encode_multipart_data(raw_qs, file_params)
            else:
                body = qs
                headers = None
            resp, content = httplib2_request(uri,
                                             method,
                                             body,
                                             headers=headers)

        if resp.status != 200:
            raise OAuthLoginError('get_unauthorized_request_token fail, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))
        print "++++++ qq request content:", resp.status, resp.reason, content
        return content
Example #3
0
    def _request(self, method, uri, **kw):
        signature, qs = QQOAuth1Login.sign(method, uri, self.consumer_key, 
                self.consumer_secret, self.token_secret, **kw)
        if method == "GET":
            full_uri = "%s?%s" % (uri, qs)
            resp, content = httplib2_request(full_uri, method)
        else:
            resp, content = httplib2_request(uri, method, qs)
            
        if resp.status != 200:
            raise OAuthLoginError('get_unauthorized_request_token fail, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))

        return content
Example #4
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, url)
        if extra_dict is None:
            extra_dict = {}
        extra_dict["alt"] = "json"

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        headers = {"Authorization": "Bearer %s" % self.access_token}     
        log.info('getting %s...' % uri)
        resp, content = httplib2_request(uri, "GET", headers=headers)
        if resp.status == 200:
            return content
        else:
            #TODO: 在这里如果access_token过期了需要refresh
            log.warn("get %s fail, status code=%s, msg=%s. go to refresh token" \
                    % (uri, resp.status, content))
            d = config.APIKEY_DICT.get(config.OPENID_DOUBAN)
            login_service = DoubanLogin(d['key'], d['secret'], d['redirect_uri'])
            try:
                login_service.update_tokens(self.refresh_token)
            except OAuthLoginError, e:
                log.warn("refresh token fail: %s" % e)
Example #5
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, url)
        if extra_dict is None:
            extra_dict = {}
        extra_dict["alt"] = "json"

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        headers = {"Authorization": "Bearer %s" % self.access_token}
        log.info('getting %s...' % uri)
        resp, content = httplib2_request(uri, "GET", headers=headers)
        if resp.status == 200:
            return content
        else:
            #TODO: 在这里如果access_token过期了需要refresh
            log.warn("get %s fail, status code=%s, msg=%s. go to refresh token" \
                    % (uri, resp.status, content))
            d = config.APIKEY_DICT.get(config.OPENID_DOUBAN)
            login_service = DoubanLogin(d['key'], d['secret'],
                                        d['redirect_uri'])
            try:
                login_service.update_tokens(self.refresh_token)
            except OAuthLoginError, e:
                log.warn("refresh token fail: %s" % e)
Example #6
0
    def post(self, url, body, headers=None):
        uri = urlparse.urljoin(self.api_host, self.api_version)
        uri = urlparse.urljoin(uri, url)

        log.info("posting %s" %url)
        resp, content = httplib2_request(uri, "POST", body=body, headers=headers)
        content_json = self.check_result(uri, resp, content)
        return content_json
Example #7
0
    def post(self, url, body, headers=None):
        uri = urlparse.urljoin(self.api_host, url)
        if headers is not None:
            headers.update({"Authorization": "Bearer %s" % self.access_token})
        else:
            headers = {"Authorization": "Bearer %s" % self.access_token}     

        resp, content = httplib2_request(uri, "POST", body=body, headers=headers)
        return self.check_result(uri, resp, content)
Example #8
0
    def post(self, url, body, headers=None):
        uri = urlparse.urljoin(self.api_host, self.api_version)
        uri = urlparse.urljoin(uri, url)

        log.info("posting %s" %url)
        resp, content = httplib2_request(uri, "POST", body=body, headers=headers)
        content_json = self.check_result(uri, resp, content)
        log.info("post to sina return:%s" % content_json)
        return content_json
Example #9
0
 def _request(self, method, uri, kw, file_params):
     raw_qs, qs = QQWeibo.sign(method, uri, self.consumer_key, 
             self.consumer_secret, self.token_secret, **kw)
     if method == "GET":
         full_uri = "%s?%s" % (uri, qs)
         resp, content = httplib2_request(full_uri, method)
     else:
         if file_params:
             from past.utils import encode_multipart_data
             body, headers = encode_multipart_data(raw_qs, file_params)
         else:
             body = qs
             headers = None
         resp, content = httplib2_request(uri, method, body, headers=headers)
         
     if resp.status != 200:
         raise OAuthLoginError(msg='get_unauthorized_request_token fail, status=%s:reason=%s:content=%s' \
                 %(resp.status, resp.reason, content))
     return content
Example #10
0
    def post(self, url, body, headers=None):
        uri = urlparse.urljoin(self.api_host, self.api_version)
        uri = urlparse.urljoin(uri, url)

        log.info("posting %s" % url)
        resp, content = httplib2_request(uri, "POST", body=body, headers=headers)
        if resp.status == 200:
            return content
        else:
            log.warn("post %s fail, status code=%s, msg=%s" % (uri, resp.status, content))
        return None
Example #11
0
    def post(self, url, body, headers=None):
        uri = urlparse.urljoin(self.api_host, url)
        if headers is not None:
            headers.update({"Authorization": "Bearer %s" % self.access_token})
        else:
            headers = {"Authorization": "Bearer %s" % self.access_token}

        resp, content = httplib2_request(uri,
                                         "POST",
                                         body=body,
                                         headers=headers)
        return self.check_result(uri, resp, content)
Example #12
0
    def get_openid(self, access_token):
        uri = '%s?access_token=%s' %(self.openid_uri, access_token)
        resp, content = httplib2_request(uri)

        if resp.status != 200:
            raise OAuthLoginError('[QQLogin.get_openid]msg=http_request_fail:status=%s:reason=%s' %(resp.status, resp.reason))

        r = _parse_qq_response(content)
        openid = r and r.get('openid')
        if not openid:
            raise OAuthLoginError('[QQLogin.get_openid]msg=get_openid_fail:reason=%s' %content)
        return openid
Example #13
0
    def post(self, url, body, headers=None):
        uri = urlparse.urljoin(self.api_host, url)
        if headers is not None:
            headers.update({"Authorization": "Bearer %s" % self.access_token})
        else:
            headers = {"Authorization": "Bearer %s" % self.access_token}     

        resp, content = httplib2_request(uri, "POST", body=body, headers=headers)
        if resp.status == 200:
            return content
        else:
            log.warn("post %s fail, status code=%s, msg=%s" %(url, resp.status, content))
            return None
Example #14
0
 def get_access_token(self, authorization_code):
     qs = {
         "client_id": self.apikey,
         "client_secret": self.apikey_secret,
         "redirect_uri": self.redirect_uri,
         "grant_type": "authorization_code",
         "code": authorization_code,
     }
     qs = urllib.urlencode(qs)
     resp, content = httplib2_request(self.access_token_uri, "POST", body=qs)
     if resp.status != 200:
         raise OAuthLoginError('get_access_token, status=%s:reason=%s:content=%s' \
                 %(resp.status, resp.reason, content))
     return json_decode(content)
Example #15
0
    def get_user_info(self, access_token, uid=None):
        headers = {"Authorization": "Bearer %s" % access_token}
        qs = {
            "alt": "json",
        }
        uri = "%s?%s" % (self.user_info_uri, urllib.urlencode(qs))
        resp, content = httplib2_request(uri, "GET", headers=headers)
        if resp.status != 200:
            raise OAuthLoginError('get_access_token, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))
        r = json_decode(content)
        user_info = DoubanUser(r)

        return user_info
Example #16
0
    def post(self, url, body, headers=None):
        uri = urlparse.urljoin(self.api_host, self.api_version)
        uri = urlparse.urljoin(uri, url)

        log.info("posting %s" % url)
        resp, content = httplib2_request(uri,
                                         "POST",
                                         body=body,
                                         headers=headers)
        if resp.status == 200:
            return content
        else:
            log.warn("post %s fail, status code=%s, msg=%s" \
                    %(uri, resp.status, content))
        return None
Example #17
0
    def get_user_info(self, access_token, uid=None):
        headers = {"Authorization": "Bearer %s" % access_token}     
        qs = {
            "alt":"json",
        }
        uri = "%s?%s" %(self.user_info_uri, urllib.urlencode(qs))
        resp, content = httplib2_request(uri, "GET", 
                headers = headers)
        if resp.status != 200:
            raise OAuthLoginError('get_access_token, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))
        r = json_decode(content)
        user_info = DoubanUser(r)

        return user_info
Example #18
0
    def get_user_info(self, access_token, uid):
        qs = {
            "source": self.apikey,
            "access_token": access_token,
            "uid": uid,
        }
        qs = urllib.urlencode(qs)
        uri = "%s?%s" % (self.user_info_uri, qs)
        resp, content = httplib2_request(uri, "GET")
        if resp.status != 200:
            raise OAuthLoginError('get_access_token, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))
        r = json_decode(content)
        user = SinaWeiboUser(r)

        return user
Example #19
0
 def get_access_token(self, authorization_code):
     qs = {
         "client_id": self.apikey,
         "client_secret": self.apikey_secret,
         "redirect_uri": self.redirect_uri,
         "grant_type": "authorization_code",
         "code": authorization_code,
     }
     qs = urllib.urlencode(qs)
     resp, content = httplib2_request(self.access_token_uri,
                                      "POST",
                                      body=qs)
     if resp.status != 200:
         raise OAuthLoginError('get_access_token, status=%s:reason=%s:content=%s' \
                 %(resp.status, resp.reason, content))
     return json_decode(content)
Example #20
0
    def get_user_info(self, access_token, uid):
        qs = {
            "source": self.apikey,
            "access_token": access_token,
            "uid": uid,
        }
        qs = urllib.urlencode(qs)
        uri = "%s?%s" % (self.user_info_uri, qs)
        resp, content = httplib2_request(uri, "GET")
        if resp.status != 200:
            raise OAuthLoginError('get_access_token, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))
        r = json_decode(content)
        user = SinaWeiboUser(r)

        return user
Example #21
0
    def update_tokens(self, refresh_token):
        qs = {}
        qs["client_id"] = self.apikey
        qs["client_secret"] = self.apikey_secret
        qs["redirect_uri"] = self.redirect_uri
        qs["grant_type"] = "refresh_token"
        qs["refresh_token"] = refresh_token

        resp, content = httplib2_request(self.access_token_uri, "POST", 
            body=urllib.urlencode(qs))
        if resp.status != 200:
            raise OAuthLoginError('refres_tokens fail, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))
        r = json_decode(content)
        
        return OAuth2Token.add(r.get("douban_user_id"), r.get("access_token"), r.get("refresh_token"))
Example #22
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, url)
        if extra_dict is None:
            extra_dict = {}
        extra_dict["alt"] = "json"

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        headers = {"Authorization": "Bearer %s" % self.access_token}     
        log.info('getting %s...' % uri)

        resp, content = httplib2_request(uri, "GET", headers=headers)
        return self.check_result(uri, resp, content)
Example #23
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, url)
        if extra_dict is None:
            extra_dict = {}
        extra_dict["alt"] = "json"

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        headers = {"Authorization": "Bearer %s" % self.access_token}
        log.info('getting %s...' % uri)

        resp, content = httplib2_request(uri, "GET", headers=headers)
        return self.check_result(uri, resp, content)
Example #24
0
    def post(self, url, body, headers=None):
        uri = urlparse.urljoin(self.api_host, url)
        if headers is not None:
            headers.update({"Authorization": "Bearer %s" % self.access_token})
        else:
            headers = {"Authorization": "Bearer %s" % self.access_token}

        resp, content = httplib2_request(uri,
                                         "POST",
                                         body=body,
                                         headers=headers)
        if resp.status == 200:
            return content
        else:
            log.warn("post %s fail, status code=%s, msg=%s" %
                     (url, resp.status, content))
            return None
Example #25
0
    def _request(self, api, method="POST", extra_dict=None):
        if extra_dict is None:
            extra_dict = {}

        params = {
            "method": api,
            "v": "1.0",
            "access_token": self.access_token,
            "format": "json",
        }
        params.update(extra_dict)
        _, qs = Renren.sign(self.apikey_secret, **params)
        uri = "%s?%s" % (self.api_host, qs)

        log.info('getting %s...' % uri)
        resp, content = httplib2_request(uri, method)
        if resp.status == 200:
            user_id = self.user_alias and self.user_alias.user_id or None
            excp = OAuthTokenExpiredError(
                user_id=None,
                openid_type=config.OPENID_TYPE_DICT[config.OPENID_RENREN],
                msg=content)
            jdata = json_decode(content) if content else None
            if jdata and isinstance(jdata, dict):
                error_code = jdata.get("error_code")
                error_msg = jdata.get("error_msg")
                if error_code:
                    if str(error_code) == "105":
                        ## 无效的token
                        excp.set_the_profile()
                        raise excp
                    elif str(error_code) == "106" and self.user_alias:
                        ## FIXME: 过期的token, 是不是106?
                        try:
                            new_tokens = super(Renren, self).refresh_tokens()
                            if new_tokens and isinstance(new_tokens, dict):
                                OAuth2Token.add(
                                    self.user_alias.id,
                                    new_tokens.get("access_token"),
                                    new_tokens.get("refresh_token"))
                                excp.clear_the_profile()
                        except OAuthError, e:
                            log.warn("refresh token fail: %s" % e)
                            excp.set_the_profile()
                            raise e
            return jdata
Example #26
0
    def get_user_info(self, access_token, openid):
        qs = {
            'access_token' : access_token,
            'oauth_consumer_key' : self.apikey,
            'openid' : openid,
        }
        qs = urllib.urlencode(qs)
        uri = '%s?%s' %(self.user_info_uri, qs)
        resp, content = httplib2_request(uri)

        if resp.status != 200:
            raise OAuthLoginError('[QQLogin.get_user_info]msg=http_request_fail:status=%s:reason=%s' %(resp.status, resp.reason))

        r = _parse_qq_response(content)
        if not r:
            raise OAuthLoginError('[QQLogin.get_user_info]msg=get_user_info_fail:reason=%s' %content)
        return r
Example #27
0
    def update_tokens(self, refresh_token):
        qs = {}
        qs["client_id"] = self.apikey
        qs["client_secret"] = self.apikey_secret
        qs["redirect_uri"] = self.redirect_uri
        qs["grant_type"] = "refresh_token"
        qs["refresh_token"] = refresh_token

        resp, content = httplib2_request(self.access_token_uri,
                                         "POST",
                                         body=urllib.urlencode(qs))
        if resp.status != 200:
            raise OAuthLoginError('refres_tokens fail, status=%s:reason=%s:content=%s' \
                    %(resp.status, resp.reason, content))
        r = json_decode(content)

        return OAuth2Token.add(r.get("douban_user_id"), r.get("access_token"),
                               r.get("refresh_token"))
Example #28
0
    def refresh_tokens(self):
        qs = {
            "grant_type": "refresh_token",
            "refresh_token": self.refresh_token,
            "client_id": self.apikey,
            "client_secret": self.apikey_secret,
            "redirect_uri": self.redirect_uri,
        }
        resp, content = httplib2_request(self.access_token_uri, "POST", 
            body=urllib.urlencode(qs))
        excp = OAuthLoginError(self.user_alias.user_id, self.provider, 
                'refresh_tokens, status=%s,reason=%s,content=%s' \
                %(resp.status, resp.reason, content))
        if resp.status != 200:
            raise excp

        jdata = json_decode(content) if content else None
        return jdata
Example #29
0
    def _request(self, api, method="POST", extra_dict=None):
        if extra_dict is None:
            extra_dict = {}

        params = {
            "method": api,
            "v": "1.0",
            "access_token": self.access_token,
            "format": "json",
        }
        params.update(extra_dict)
        _, qs = Renren.sign(self.apikey_secret, **params)
        uri = "%s?%s" % (self.api_host, qs)

        log.info('getting %s...' % uri)
        resp, content = httplib2_request(uri, method)
        if resp.status == 200:
            user_id = self.user_alias and self.user_alias.user_id or None
            excp = OAuthTokenExpiredError(user_id=None,
                    openid_type=config.OPENID_TYPE_DICT[config.OPENID_RENREN], 
                    msg=content)
            jdata = json_decode(content) if content else None
            if jdata and isinstance(jdata, dict):
                error_code = jdata.get("error_code")
                error_msg = jdata.get("error_msg")
                if error_code:
                    if str(error_code) == "105":
                        ## 无效的token
                        excp.set_the_profile()
                        raise excp
                    elif str(error_code) == "106" and self.user_alias:
                        ## FIXME: 过期的token, 是不是106?
                        try:
                            new_tokens = super(Renren, self).refresh_tokens()
                            if new_tokens and isinstance(new_tokens, dict):
                                OAuth2Token.add(self.user_alias.id, 
                                        new_tokens.get("access_token"), 
                                        new_tokens.get("refresh_token"))
                                excp.clear_the_profile()
                        except OAuthError, e:
                            log.warn("refresh token fail: %s" % e)
                            excp.set_the_profile()
                            raise e
            return jdata
Example #30
0
    def _request(self, api, method="GET", extra_dict=None):
        uri = urlparse.urljoin(self.api_host, api)
        if extra_dict is None:
            extra_dict = {}

        params = {
            "access_token": self.access_token,
        }
        params.update(extra_dict)
        qs = urllib.urlencode(params)
        uri = "%s?%s" % (uri, qs)

        log.info('getting %s...' % uri)
        resp, content = httplib2_request(uri, method)
        if resp.status == 200:
            return json_decode(content) if content else None
        else:
            log.warn("get %s fail, status code=%s, msg=%s" \
                    % (uri, resp.status, content))
Example #31
0
    def _request(self, api, method="GET", extra_dict=None):
        uri = urlparse.urljoin(self.api_host, api)
        if extra_dict is None:
            extra_dict = {}

        params = {
            "access_token": self.access_token,
        }
        params.update(extra_dict)
        qs = urllib.urlencode(params)
        uri = "%s?%s" % (uri, qs)

        log.info('getting %s...' % uri)
        resp, content = httplib2_request(uri, method)
        if resp.status == 200:
            return json_decode(content) if content else None
        else:
            log.warn("get %s fail, status code=%s, msg=%s" \
                    % (uri, resp.status, content))
Example #32
0
    def get_access_token(self, authorization_code):
        qs = {
            'client_id'     : self.apikey,
            'client_secret' : self.apikey_secret,
            'redirect_uri'  : self.redirect_uri,
            'grant_type'    : 'authorization_code',
            'code'          : authorization_code,
        }
        qs = urllib.urlencode(qs)
        uri = '%s?%s' %(self.access_token_uri, qs)
        resp, content = httplib2_request(uri)

        if resp.status != 200:
            raise OAuthLoginError('[QQLogin.get_access_token]msg=http_request_fail:status=%s:reason=%s' %(resp.status, resp.reason))

        r = _parse_qq_response(content)
        token = r and r.get('access_token')
        if not token:
            raise OAuthLoginError('[QQLogin.get_access_token]msg=get_access_token_fail:reason=%s' %content)
        return token
Example #33
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, self.api_version)
        uri = urlparse.urljoin(uri, url)
        if extra_dict is None:
            extra_dict = {}
        if not "access_token" in extra_dict:
            extra_dict["access_token"] = self.access_token
        if not "source" in extra_dict:
            extra_dict["source"] = self.apikey

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        log.info('getting %s...' % uri)

        resp, content = httplib2_request(uri, "GET")
        content_json = self.check_result(uri, resp, content)
        return content_json
Example #34
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, self.api_version)
        uri = urlparse.urljoin(uri, url)
        if extra_dict is None:
            extra_dict = {}
        if not "access_token" in extra_dict:
            extra_dict["access_token"] = self.access_token
        if not "source" in extra_dict:
            extra_dict["source"] = self.apikey

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        log.info('getting %s...' % uri)

        resp, content = httplib2_request(uri, "GET")
        content_json = self.check_result(uri, resp, content)
        return content_json
Example #35
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, url)
        if extra_dict is None:
            extra_dict = {}
        extra_dict["alt"] = "json"

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        headers = {"Authorization": "Bearer %s" % self.access_token}     
        log.info('getting %s...' % uri)
        resp, content = httplib2_request(uri, "GET", headers=headers)
        if resp.status == 200:
            return content
        else:
            log.warn("get %s fail, status code=%s, msg=%s" \
                    % (uri, resp.status, content))
        return None
Example #36
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, self.api_version)
        uri = urlparse.urljoin(uri, url)
        if extra_dict is None:
            extra_dict = {}
        if not "access_token" in extra_dict:
            extra_dict["access_token"] = self.access_token
        if not "source" in extra_dict:
            extra_dict["source"] = self.apikey

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        log.info("getting %s..." % uri)
        resp, content = httplib2_request(uri, "GET")
        if resp.status == 200:
            return content
        else:
            log.warn("get %s fail, status code=%s, msg=%s" % (uri, resp.status, content))
        return None
Example #37
0
    def get(self, url, extra_dict=None):
        uri = urlparse.urljoin(self.api_host, self.api_version)
        uri = urlparse.urljoin(uri, url)
        if extra_dict is None:
            extra_dict = {}
        if not "access_token" in extra_dict:
            extra_dict["access_token"] = self.access_token
        if not "source" in extra_dict:
            extra_dict["source"] = self.apikey

        if extra_dict:
            qs = urllib.urlencode(extra_dict)
            if "?" in uri:
                uri = "%s&%s" % (uri, qs)
            else:
                uri = "%s?%s" % (uri, qs)
        log.info('getting %s...' % uri)
        resp, content = httplib2_request(uri, "GET")
        if resp.status == 200:
            return content
        else:
            log.warn("get %s fail, status code=%s, msg=%s" \
                    % (uri, resp.status, content))
        return None