Skip to content

Commit 2fa0bfd

Browse files
Change Python Requests to use auth= parameter instead of headers= to authenticate the request
1 parent 7215c8b commit 2fa0bfd

File tree

14 files changed

+173
-153
lines changed

14 files changed

+173
-153
lines changed

Filtered-Stream/filtered_stream.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,22 @@
44

55
# To set your enviornment variables in your terminal run the following line:
66
# export 'BEARER_TOKEN'='<your_bearer_token>'
7+
bearer_token = os.environ.get("BEARER_TOKEN")
78

89

9-
def create_headers(bearer_token):
10-
headers = {"Authorization": "Bearer {}".format(bearer_token)}
11-
return headers
10+
def bearer_oauth(r):
11+
"""
12+
Method required by bearer token authentication.
13+
"""
1214

15+
r.headers["Authorization"] = f"Bearer {bearer_token}"
16+
r.headers["User-Agent"] = "v2FilteredStreamPython"
17+
return r
1318

14-
def get_rules(headers, bearer_token):
19+
20+
def get_rules():
1521
response = requests.get(
16-
"https://api.twitter.com/2/tweets/search/stream/rules", headers=headers
22+
"https://api.twitter.com/2/tweets/search/stream/rules", auth=bearer_oauth
1723
)
1824
if response.status_code != 200:
1925
raise Exception(
@@ -23,15 +29,15 @@ def get_rules(headers, bearer_token):
2329
return response.json()
2430

2531

26-
def delete_all_rules(headers, bearer_token, rules):
32+
def delete_all_rules(rules):
2733
if rules is None or "data" not in rules:
2834
return None
2935

3036
ids = list(map(lambda rule: rule["id"], rules["data"]))
3137
payload = {"delete": {"ids": ids}}
3238
response = requests.post(
3339
"https://api.twitter.com/2/tweets/search/stream/rules",
34-
headers=headers,
40+
auth=bearer_oauth,
3541
json=payload
3642
)
3743
if response.status_code != 200:
@@ -43,7 +49,7 @@ def delete_all_rules(headers, bearer_token, rules):
4349
print(json.dumps(response.json()))
4450

4551

46-
def set_rules(headers, delete, bearer_token):
52+
def set_rules(delete):
4753
# You can adjust the rules if needed
4854
sample_rules = [
4955
{"value": "dog has:images", "tag": "dog pictures"},
@@ -52,7 +58,7 @@ def set_rules(headers, delete, bearer_token):
5258
payload = {"add": sample_rules}
5359
response = requests.post(
5460
"https://api.twitter.com/2/tweets/search/stream/rules",
55-
headers=headers,
61+
auth=bearer_oauth,
5662
json=payload,
5763
)
5864
if response.status_code != 201:
@@ -62,9 +68,9 @@ def set_rules(headers, delete, bearer_token):
6268
print(json.dumps(response.json()))
6369

6470

65-
def get_stream(headers, set, bearer_token):
71+
def get_stream(set):
6672
response = requests.get(
67-
"https://api.twitter.com/2/tweets/search/stream", headers=headers, stream=True,
73+
"https://api.twitter.com/2/tweets/search/stream", auth=bearer_oauth, stream=True,
6874
)
6975
print(response.status_code)
7076
if response.status_code != 200:
@@ -80,12 +86,10 @@ def get_stream(headers, set, bearer_token):
8086

8187

8288
def main():
83-
bearer_token = os.environ.get("BEARER_TOKEN")
84-
headers = create_headers(bearer_token)
85-
rules = get_rules(headers, bearer_token)
86-
delete = delete_all_rules(headers, bearer_token, rules)
87-
set = set_rules(headers, delete, bearer_token)
88-
get_stream(headers, set, bearer_token)
89+
rules = get_rules()
90+
delete = delete_all_rules(rules)
91+
set = set_rules(delete)
92+
get_stream(set)
8993

9094

9195
if __name__ == "__main__":

Follows-Lookup/followers_lookup.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
# To set your environment variables in your terminal run the following line:
66
# export 'BEARER_TOKEN'='<your_bearer_token>'
7-
8-
9-
def auth():
10-
return os.environ.get("BEARER_TOKEN")
7+
bearer_token = os.environ.get("BEARER_TOKEN")
118

129

1310
def create_url():
@@ -20,13 +17,18 @@ def get_params():
2017
return {"user.fields": "created_at"}
2118

2219

23-
def create_headers(bearer_token):
24-
headers = {"Authorization": "Bearer {}".format(bearer_token)}
25-
return headers
20+
def bearer_oauth(r):
21+
"""
22+
Method required by bearer token authentication.
23+
"""
24+
25+
r.headers["Authorization"] = f"Bearer {bearer_token}"
26+
r.headers["User-Agent"] = "v2FollowersLookupPython"
27+
return r
2628

2729

28-
def connect_to_endpoint(url, headers, params):
29-
response = requests.request("GET", url, headers=headers, params=params)
30+
def connect_to_endpoint(url, params):
31+
response = requests.request("GET", url, auth=bearer_oauth, params=params)
3032
print(response.status_code)
3133
if response.status_code != 200:
3234
raise Exception(
@@ -38,11 +40,9 @@ def connect_to_endpoint(url, headers, params):
3840

3941

4042
def main():
41-
bearer_token = auth()
4243
url = create_url()
43-
headers = create_headers(bearer_token)
4444
params = get_params()
45-
json_response = connect_to_endpoint(url, headers, params)
45+
json_response = connect_to_endpoint(url, params)
4646
print(json.dumps(json_response, indent=4, sort_keys=True))
4747

4848

Follows-Lookup/following_lookup.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
# To set your environment variables in your terminal run the following line:
66
# export 'BEARER_TOKEN'='<your_bearer_token>'
7-
8-
9-
def auth():
10-
return os.environ.get("BEARER_TOKEN")
7+
bearer_token = os.environ.get("BEARER_TOKEN")
118

129

1310
def create_url():
@@ -20,13 +17,18 @@ def get_params():
2017
return {"user.fields": "created_at"}
2118

2219

23-
def create_headers(bearer_token):
24-
headers = {"Authorization": "Bearer {}".format(bearer_token)}
25-
return headers
20+
def bearer_oauth(r):
21+
"""
22+
Method required by bearer token authentication.
23+
"""
24+
25+
r.headers["Authorization"] = f"Bearer {bearer_token}"
26+
r.headers["User-Agent"] = "v2FollowingLookupPython"
27+
return r
2628

2729

28-
def connect_to_endpoint(url, headers, params):
29-
response = requests.request("GET", url, headers=headers, params=params)
30+
def connect_to_endpoint(url, params):
31+
response = requests.request("GET", url, auth=bearer_oauth, params=params)
3032
print(response.status_code)
3133
if response.status_code != 200:
3234
raise Exception(
@@ -38,11 +40,9 @@ def connect_to_endpoint(url, headers, params):
3840

3941

4042
def main():
41-
bearer_token = auth()
4243
url = create_url()
43-
headers = create_headers(bearer_token)
4444
params = get_params()
45-
json_response = connect_to_endpoint(url, headers, params)
45+
json_response = connect_to_endpoint(url, params)
4646
print(json.dumps(json_response, indent=4, sort_keys=True))
4747

4848

Full-Archive-Search/full-archive-search.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,26 @@
1313
query_params = {'query': '(from:twitterdev -is:retweet) OR #twitterdev','tweet.fields': 'author_id'}
1414

1515

16-
def create_headers(bearer_token):
17-
headers = {"Authorization": "Bearer {}".format(bearer_token)}
18-
return headers
16+
def bearer_oauth(r):
17+
"""
18+
Method required by bearer token authentication.
19+
"""
1920

21+
r.headers["Authorization"] = f"Bearer {bearer_token}"
22+
r.headers["User-Agent"] = "v2FullArchiveSearchPython"
23+
return r
2024

21-
def connect_to_endpoint(url, headers, params):
22-
response = requests.request("GET", search_url, headers=headers, params=params)
25+
26+
def connect_to_endpoint(url, params):
27+
response = requests.request("GET", search_url, auth=bearer_oauth, params=params)
2328
print(response.status_code)
2429
if response.status_code != 200:
2530
raise Exception(response.status_code, response.text)
2631
return response.json()
2732

2833

2934
def main():
30-
headers = create_headers(bearer_token)
31-
json_response = connect_to_endpoint(search_url, headers, query_params)
35+
json_response = connect_to_endpoint(search_url, query_params)
3236
print(json.dumps(json_response, indent=4, sort_keys=True))
3337

3438

Full-Archive-Tweet-Counts/full_archive_tweet_counts.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,26 @@
1212
query_params = {'query': 'from:twitterdev','granularity': 'day', 'start_time': '2021-01-01T00:00:00Z'}
1313

1414

15-
def create_headers(bearer_token):
16-
headers = {"Authorization": "Bearer {}".format(bearer_token)}
17-
return headers
15+
def bearer_oauth(r):
16+
"""
17+
Method required by bearer token authentication.
18+
"""
1819

20+
r.headers["Authorization"] = f"Bearer {bearer_token}"
21+
r.headers["User-Agent"] = "v2FullArchiveTweetCountsPython"
22+
return r
1923

20-
def connect_to_endpoint(url, headers, params):
21-
response = requests.request("GET", search_url, headers=headers, params=params)
24+
25+
def connect_to_endpoint(url, params):
26+
response = requests.request("GET", search_url, auth=bearer_oauth, params=params)
2227
print(response.status_code)
2328
if response.status_code != 200:
2429
raise Exception(response.status_code, response.text)
2530
return response.json()
2631

2732

2833
def main():
29-
headers = create_headers(bearer_token)
30-
json_response = connect_to_endpoint(search_url, headers, query_params)
34+
json_response = connect_to_endpoint(search_url, query_params)
3135
print(json.dumps(json_response, indent=4, sort_keys=True))
3236

3337

Likes-Lookup/liked_tweets.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
# To set your enviornment variables in your terminal run the following line:
66
# export 'BEARER_TOKEN'='<your_bearer_token>'
7-
8-
9-
def auth():
10-
return os.environ.get("BEARER_TOKEN")
7+
bearer_token = os.environ.get("BEARER_TOKEN")
118

129

1310
def create_url():
@@ -28,14 +25,19 @@ def create_url():
2825
return url, tweet_fields
2926

3027

31-
def create_headers(bearer_token):
32-
headers = {"Authorization": "Bearer {}".format(bearer_token)}
33-
return headers
28+
def bearer_oauth(r):
29+
"""
30+
Method required by bearer token authentication.
31+
"""
32+
33+
r.headers["Authorization"] = f"Bearer {bearer_token}"
34+
r.headers["User-Agent"] = "v2LikedTweetsPython"
35+
return r
3436

3537

36-
def connect_to_endpoint(url, headers, tweet_fields):
38+
def connect_to_endpoint(url, tweet_fields):
3739
response = requests.request(
38-
"GET", url, headers=headers, params=tweet_fields)
40+
"GET", url, auth=bearer_oauth, params=tweet_fields)
3941
print(response.status_code)
4042
if response.status_code != 200:
4143
raise Exception(
@@ -47,10 +49,8 @@ def connect_to_endpoint(url, headers, tweet_fields):
4749

4850

4951
def main():
50-
bearer_token = auth()
5152
url, tweet_fields = create_url()
52-
headers = create_headers(bearer_token)
53-
json_response = connect_to_endpoint(url, headers, tweet_fields)
53+
json_response = connect_to_endpoint(url, tweet_fields)
5454
print(json.dumps(json_response, indent=4, sort_keys=True))
5555

5656

Likes-Lookup/liking_users.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
# To set your enviornment variables in your terminal run the following line:
66
# export 'BEARER_TOKEN'='<your_bearer_token>'
7-
8-
9-
def auth():
10-
return os.environ.get("BEARER_TOKEN")
7+
bearer_token = os.environ.get("BEARER_TOKEN")
118

129

1310
def create_url():
@@ -25,13 +22,18 @@ def create_url():
2522
return url, user_fields
2623

2724

28-
def create_headers(bearer_token):
29-
headers = {"Authorization": "Bearer {}".format(bearer_token)}
30-
return headers
25+
def bearer_oauth(r):
26+
"""
27+
Method required by bearer token authentication.
28+
"""
29+
30+
r.headers["Authorization"] = f"Bearer {bearer_token}"
31+
r.headers["User-Agent"] = "v2LikingUsersPython"
32+
return r
3133

3234

33-
def connect_to_endpoint(url, headers, user_fields):
34-
response = requests.request("GET", url, headers=headers, params=user_fields)
35+
def connect_to_endpoint(url, user_fields):
36+
response = requests.request("GET", url, auth=bearer_oauth, params=user_fields)
3537
print(response.status_code)
3638
if response.status_code != 200:
3739
raise Exception(
@@ -43,10 +45,8 @@ def connect_to_endpoint(url, headers, user_fields):
4345

4446

4547
def main():
46-
bearer_token = auth()
4748
url, tweet_fields = create_url()
48-
headers = create_headers(bearer_token)
49-
json_response = connect_to_endpoint(url, headers, tweet_fields)
49+
json_response = connect_to_endpoint(url, tweet_fields)
5050
print(json.dumps(json_response, indent=4, sort_keys=True))
5151

5252

Recent-Search/recent_search.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,26 @@
1313
query_params = {'query': '(from:twitterdev -is:retweet) OR #twitterdev','tweet.fields': 'author_id'}
1414

1515

16-
def create_headers(bearer_token):
17-
headers = {"Authorization": "Bearer {}".format(bearer_token)}
18-
return headers
16+
def bearer_oauth(r):
17+
"""
18+
Method required by bearer token authentication.
19+
"""
1920

21+
r.headers["Authorization"] = f"Bearer {bearer_token}"
22+
r.headers["User-Agent"] = "v2RecentSearchPython"
23+
return r
2024

21-
def connect_to_endpoint(url, headers, params):
22-
response = requests.request("GET", search_url, headers=headers, params=params)
25+
26+
def connect_to_endpoint(url, params):
27+
response = requests.get(search_url, auth=bearer_oauth, params=params)
2328
print(response.status_code)
2429
if response.status_code != 200:
2530
raise Exception(response.status_code, response.text)
2631
return response.json()
2732

2833

2934
def main():
30-
headers = create_headers(bearer_token)
31-
json_response = connect_to_endpoint(search_url, headers, query_params)
35+
json_response = connect_to_endpoint(search_url, query_params)
3236
print(json.dumps(json_response, indent=4, sort_keys=True))
3337

3438

0 commit comments

Comments
 (0)