def testOauth(): s3 = boto3.client('s3') ddb = boto3.client('dynamodb') response = s3.get_object( Bucket=S3_BUCKET, Key=CREDS_KEY, ) creds = json.loads(response['Body'].read()) client_auth = requests.auth.HTTPBasicAuth(creds['appId'], creds['secret']) data = { "grant_type": "password", "username": creds['username'], "password": creds['password'] } req = requests.Request('POST', "https://www.reddit.com/api/v1/access_token", auth=client_auth, data=json.dumps(data), headers={"User-Agent": "lntipbot/0.1 by lntipbot"}) pretty_print_POST(req.prepare()) headers = urllib3.util.make_headers( basic_auth='{}:{}'.format(creds['appId'], creds['secret'])) headers["User-Agent"] = "lntipbot/0.1 by lntipbot" print(headers) print(json.dumps(data)) response = http.request('POST', "https://www.reddit.com/api/v1/access_token", fields=data, headers=headers) oauthToken = json.loads(response.data) print(oauthToken)
def test_auth(self): auth = SignatureAuth( Bag(secret_key='foo', access_key='bar', method='env', token=None), 'us-east-1', 'execute-api') req = requests.Request('POST', 'http://example.com', auth=auth) prepped = req.prepare() self.assertTrue(prepped.headers['Authorization'].startswith( 'AWS4-HMAC-SHA256 Credential=bar/'))
def test_auth(self): auth = SignatureAuth( Bag(secret_key="foo", access_key="bar", method="env", token=None), "us-east-1", "execute-api", ) req = requests.Request("POST", "http://example.com", auth=auth) prepped = req.prepare() self.assertTrue(prepped.headers["Authorization"].startswith( "AWS4-HMAC-SHA256 Credential=bar/"))
def optimizely_request(http_verb, resource='/', qs_params={}, payload={}): http_verb = http_verb.lower() session = requests.Session() url = 'https://api.optimizely.com/{version}{resource}'.format( version='v2', resource=resource) headers = {"Authorization": "Bearer {}".format(token)} if http_verb in ['post', 'patch']: headers['Content-Type'] = 'application/json' req = requests.Request(http_verb.lower(), url, json=payload, headers=headers, params=qs_params) prepped = session.prepare_request(req) response = session.send(prepped) if response.status_code > 299: raise Exception('Unable to make request: \n{}'.format(response.text)) try: return response.json() except Exception as e: return []
def send_requests(self, keyword, url_sub=None, headers=None, data=None): if url_sub is None: url_sub = dict(pattern="", value="") try: url_parameters = self.urls.get(keyword, None) if not url_parameters: raise Exception("Keyword not in urls.json") url = self.server + re.sub(url_sub.get("pattern"), url_sub.get("value"), url_parameters.get("url_suffix")) s = requests.Session() headers = headers or self.headers req = requests.Request(method=url_parameters.get("http_method"), headers=headers, url=url, data=data) prepped = req.prepare() resp = s.send(prepped) if resp.status_code == 200: if headers.get("Accept") == "application/json;v=1.0": return resp else: return resp elif resp.status_code in [201, 202]: return resp elif resp.status_code == 204: return resp elif resp.status_code == 400: raise Exception(" 400 Bad Request: {}.".format(resp.text)) elif resp.status_code == 404: rd = json.loads(resp.text) if rd['messageCode'] == 47642: return resp else: raise Exception(" 404 Not found {}.".format(resp.text)) else: raise Exception(" Failed: {}.".format(resp.text)) except Exception as e: raise Exception("{}".format(e))