-
Notifications
You must be signed in to change notification settings - Fork 238
/
Copy pathtwitter.nu
28 lines (20 loc) · 1.1 KB
/
twitter.nu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env nu
#script to get basic info from twitter's unofficial API
def main [...usernames: string] {
let bearer = "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA"
let token_endpoint = 'https://api.twitter.com/1.1/guest/activate.json'
let user_endpoint = 'https://twitter.com/i/api/graphql/gr8Lk09afdgWo7NvzP89iQ/UserByScreenName'
#obtaining the guest token needed to perform further request
let token = (
post -H [Authorization $bearer] $token_endpoint ''
).guest_token
for $twitter_username in $usernames {
#getting all the useful data from the api
let variables = {
screen_name: $twitter_username,
withSafetyModeUserFields: true,
withSuperFollowsUserFields: true
}
post $user_endpoint -t application/x-www-form-urlencoded [ variables ($variables|to json -r) ] -H [ Authorization $bearer, x-guest-token $token ] | get data.user.result | flatten | select name screen_name description protected verified created_at followers_count rest_id has_nft_avatar | get 0
}
}