diff --git a/segment/analytics/oath2Test.py b/segment/analytics/oath2Test.py new file mode 100644 index 00000000..d5e78d5c --- /dev/null +++ b/segment/analytics/oath2Test.py @@ -0,0 +1,64 @@ +import requests +import os +from urllib.parse import urlencode +import webbrowser + +CLIENT_ID = "Iv1.9332e33a45a46e2f" +CLIENT_SECRET = "ddfc4878523bf3e7038f2e72ca0f3900382a95e9" +REDIRECT_URI = "https://httpbin.org/anything" +BASE_API_ENDPOINT = "https://oauth2.segment.build" + +""" +Github App +CLIENT_ID = "Iv1.9332e33a45a46e2f" +CLIENT_SECRET = "ddfc4878523bf3e7038f2e72ca0f3900382a95e9" +REDIRECT_URI = "https://httpbin.org/anything" +BASE_API_ENDPOINT = "https://api.github.com/user" +endpoint = "https://github.com/login/oauth/authorize" + +AFTER CODE ENDPOINT +endpoint = "https://github.com/login/oauth/access_token" + +""" + +""" +Here's the key file for OAuth2. +You'll need to specify a different endpoint server, api.segment.build +The write key for the source is TEBWeMLQWxtJjW8B91Hu5bujQLqhpLUR +The Client/App ID: 2TlKP068Khdw4jZaCHuWjXmvui2 +The Key ID: 2TlKOw1a7n9tUUmVK1ISKnnJ0hA +""" + +params = { + "client_id": CLIENT_ID, + "redirect_uri": REDIRECT_URI, + "scope": "user" +} + +endpoint = "https://oauth2.segment.build/login/oauth/authorize" +endpoint = endpoint + '?' + urlencode(params) +webbrowser.open(endpoint) + +code = input("Enter the Code: ") + +print("Got Code") + +params = { + "client_id": CLIENT_ID, + "client_secret": CLIENT_SECRET, + "redirect_uri": REDIRECT_URI, + "code": code, +} +endpoint = "https://oauth2.segment.build/token" +response = requests.post(endpoint, params=params, headers = {"Accept": "application/json"}).json() +access_token = response['access_token'] +print("Got Access Token") + +session = requests.session() +session.headers = {"Authorization": f"token {access_token}"} + +base_api_endpoint = BASE_API_ENDPOINT + +response = session.get(base_api_endpoint) +print(response) + diff --git a/segment/analytics/request.py b/segment/analytics/request.py index d1901f79..1647641b 100644 --- a/segment/analytics/request.py +++ b/segment/analytics/request.py @@ -7,6 +7,14 @@ from requests.auth import HTTPBasicAuth from requests import sessions +import requests +from urllib.parse import urlencode + +CLIENT_ID = "2TlKP068Khdw4jZaCHuWjXmvui2" +CLIENT_SECRET = "2TlKP068Khdw4jZaCHuWjXmvui2" +REDIRECT_URI = "http://api.segment.build" +BASE_API_ENDPOINT = "http://api.segment.build" + from segment.analytics.version import VERSION from segment.analytics.utils import remove_trailing_slash @@ -59,6 +67,44 @@ def post(write_key, host=None, gzip=False, timeout=15, proxies=None, **kwargs): except ValueError: raise APIError(res.status_code, 'unknown', res.text) +class GetOathCode(): + + def __init__(self, arg): + params = { + "client_id": CLIENT_ID, + "redirect_uri": REDIRECT_URI, + "scope": "scope" + } + + endpoint = "http://api.segment.build" + endpoint = endpoint + '?' + urlencode(params) + response = _session.post(endpoint) + self.code = response + return self.code + + +class GetOathToken(): + + def __init__(self, arg, code): + params = { + "client_id": CLIENT_ID, + "client_secret": CLIENT_SECRET, + "redirect_uri": REDIRECT_URI, + "code": code, + } + endpoint = "http://api.segment.build/token" + response = requests.post(endpoint, params=params, headers = {"Accept": "application/json"}).json() + access_token = response['access_token'] + print("Got Access Token") + + session = requests.session() + session.headers = {"Authorization": f"token {access_token}"} + + base_api_endpoint = BASE_API_ENDPOINT + + response = session.get(base_api_endpoint) + print(response) + class APIError(Exception):