Facebook
From dfgdfg, 2 Months ago, written in Python.
Embed
Download Paste or View Raw
Hits: 177
  1. import csv
  2. import requests
  3. headers = {
  4.     'authority': 'api.swapcard.com',
  5.     'accept': '*/*',
  6.     'accept-language': 'en-US,en;q=0.9',
  7.     'authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb3JlQXBpVXNlcklkIjoiVlhObGNsOHhPREk0T0RZNE53PT0iLCJwZXJtaXNzaW9ucyI6W10sInNlc3Npb25JZCI6IjY1ZTA5N2Y3MzBiMGFhZmE0YWQ3Y2ZmMSIsInR5cGUiOiJhY2Nlc3MtdG9rZW4iLCJ1c2VySWQiOiI2NWM5ZDdiYzFjMTRlMDg3MDBhNGQ3ZDIiLCJpYXQiOjE3MDkyNzAyNDMsImV4cCI6MTcwOTI4NDY0MywiaXNzIjoiYXV0aC1hcGkifQ.Ir2zRlyFYK7Wo_gzi-qPAAaORxCCDapkQplGxeMruo0oYf5GkRnSTyqSDanINWQrxrbb4exlPQI-tnSgCnNSu_nxWpJUFjISZ5ORZF7kDLMLqjEf2ICrQfQT8LNeLYD4aKzwbFJHb_O0aIOXpsGvSvx_CFdZ_l2HICBwo7WN1qQOI1mVOCLllHKnMYjBSSP0O98o2KPr5BZz-hvv5wOHX3lRo4dP3Ho2f2mMLTUstFi9qd_JW7JgqMiKxbQHloD_APjMKJD338NYKRjYWZGzIrpZMOulwvweHppY4hmVEDR8v1oMtNvFU5mlwVnmCpsPRtjOmtQ8NLG19-SrNcpCErB6CVDqgKfbH_BrnhM9PpLPS_e7oXXlgMpDkbZ2A0UaGeAg74DcZDv2YyU6RlLDsdopF2odDaJ8nXdvSz8m7a7lgPVJavSd2J-RTz0mPuo826Y7sLuPakEDctTPB8lmKAS9NA_BmPmWem96wmQgIZczbEvgzkngeI5Iu54JLZpGC3LfqlngVozTGBEjy1ejyATxH6jFv8Hrzq-v7gMqVVhuPaYUktzzlH9FAKLLdNWwuoSnoBj0xbYQI4VC6BHtd8hkMPvFUia-HUgNekXijkUmEduVGGSOiCD9Ne1B3A5OEvBKL5iqIjfP3it14pbLfSsZ3ve6ff7WnssLMrrxdsY',
  8.     'content-type': 'application/json',
  9.     'origin': 'https://connect.onegiantleap.com',
  10.     'referer': 'https://connect.onegiantleap.com/',
  11.     'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
  12.     'sec-ch-ua-mobile': '?0',
  13.     'sec-ch-ua-platform': '"Windows"',
  14.     'sec-fetch-dest': 'empty',
  15.     'sec-fetch-mode': 'cors',
  16.     'sec-fetch-site': 'cross-site',
  17.     'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
  18.     'x-client-origin': 'connect.onegiantleap.com',
  19.     'x-client-platform': 'Event App',
  20.     'x-client-version': '2.307.31',
  21. }
  22.  
  23.  
  24. c = 0
  25.  
  26.  
  27. def save_data_to_csv(data):
  28.     global c
  29.     field_names = ["First Name", "Last Name", "User ID", "Email", "Job Title", "Organization","Phone","Country"]
  30.  
  31.     with open('data.csv', 'a', newline='') as csvfile:
  32.         writer = csv.DictWriter(csvfile, fieldnames=field_names)
  33.         if c == 0:
  34.             writer.writeheader()
  35.  
  36.         for item in data:
  37.             f_name = item[0]
  38.             l_name = item[1]
  39.             user_id = item[2]
  40.             email = item[3]
  41.             job_title = item[4]
  42.             organization = item[5]
  43.             phone = item[6]
  44.             country = item[7]
  45.  
  46.             writer.writerow({
  47.                 "First Name": f_name,
  48.                 "Last Name": l_name,
  49.                 "User ID": user_id,
  50.                 "Email": email,
  51.                 "Job Title": job_title,
  52.                 "Organization": organization,
  53.                 "Phone":phone,
  54.                 "Country":country
  55.             })
  56.  
  57.     c += 1
  58.  
  59.  
  60. def get_first_name(url):
  61.     person_id = url.split("/")[-1]
  62.  
  63.     json_data = [
  64.         {
  65.             'operationName': 'CurrentEventPersonProviderQuery',
  66.             'variables': {
  67.                 'eventId': 'RXZlbnRfMTcxNzY4Nw==',
  68.             },
  69.             'extensions': {
  70.                 'persistedQuery': {
  71.                     'version': 1,
  72.                     'sha256Hash': '6d731832c717dfd97567da6934ba7e609e89dc9daad212ff9ff2bd73f8fea6ad',
  73.                 },
  74.             },
  75.         },
  76.         {
  77.             'operationName': 'PersonUserId',
  78.             'variables': {
  79.                 'personId': person_id,
  80.             },
  81.             'extensions': {
  82.                 'persistedQuery': {
  83.                     'version': 1,
  84.                     'sha256Hash': '109137c30f77f624ffa4263a20e90a0a4fc9e9e7ddade6a7a5039a935b69e1b0',
  85.                 },
  86.             },
  87.         },
  88.         {
  89.             'operationName': 'EventPersonDetailsQuery',
  90.             'variables': {
  91.                 'skipMeetings': True,
  92.                 'withEvent': True,
  93.                 'personId': person_id,
  94.                 'userId': '',
  95.                 'eventId': 'RXZlbnRfMTcxNzY4Nw==',
  96.             },
  97.             'extensions': {
  98.                 'persistedQuery': {
  99.                     'version': 1,
  100.                     'sha256Hash': '8277c430fdaca5eb97969046e434f876a09af31e8e7940ed50ec234e9c052e77',
  101.                 },
  102.             },
  103.         },
  104.         {
  105.             'operationName': 'SingleCommunityQuery',
  106.             'variables': {},
  107.             'extensions': {
  108.                 'persistedQuery': {
  109.                     'version': 1,
  110.                     'sha256Hash': '0fbbcdbf8bde4a9b8986bb9982f3d875d0ffb56f8e742c28ec9e958cc2729f8c',
  111.                 },
  112.             },
  113.         },
  114.         {
  115.             'operationName': 'NotificationCounter',
  116.             'variables': {},
  117.             'extensions': {
  118.                 'persistedQuery': {
  119.                     'version': 1,
  120.                     'sha256Hash': '5d3a070c72b11519f887eb28afcf5babeebae711e7d09815a83d3881ab0e134d',
  121.                 },
  122.             },
  123.         },
  124.         {
  125.             'operationName': 'NewNotifications',
  126.             'variables': {
  127.                 'withEvent': False,
  128.                 'eventId': '',
  129.                 'createdAfter': '2024-02-28 16:00:00',
  130.             },
  131.             'extensions': {
  132.                 'persistedQuery': {
  133.                     'version': 1,
  134.                     'sha256Hash': 'd41e6888cbf3cf6a1e0a07cd42d2fe5e4514ac56161cee887ed86845e680e260',
  135.                 },
  136.             },
  137.         },
  138.         {
  139.             'operationName': 'ApplicationProvider_CurrentCommunity',
  140.             'variables': {
  141.                 'communitySlug': 'leap',
  142.             },
  143.             'extensions': {
  144.                 'persistedQuery': {
  145.                     'version': 1,
  146.                     'sha256Hash': '23de4b566f56b122085ecc57cbb5a46c62c7d13c363293f4d100b16f2c1ee477',
  147.                 },
  148.             },
  149.         },
  150.     ]
  151.  
  152.     response = requests.post('https://api.swapcard.com/graphql', headers=headers, json=json_data)
  153.  
  154.     data = response.json()
  155.  
  156.     print(data)
  157.  
  158.     fields = data[2]["data"]["person"]["withEvent"]["fields"]
  159.  
  160.     country = ""
  161.  
  162.     for field in fields:
  163.        try:
  164.            if field["name"] == "Country":
  165.                 country = field["value"]["text"]
  166.        except:
  167.            pass
  168.  
  169.  
  170.     f_name = data[2]["data"]["person"]["firstName"]
  171.     l_name = data[2]["data"]["person"]["lastName"]
  172.     user_id = data[2]["data"]["person"]["userId"]
  173.     email = data[2]["data"]["person"]["email"]
  174.     job_title = data[2]["data"]["person"]["jobTitle"]
  175.     organization = data[2]["data"]["person"]["organization"]
  176.     try:
  177.         phone = data[2]["data"]["person"]["mobilePhone"]['formattedNumber']
  178.     except:
  179.         phone = ""
  180.     country = country
  181.  
  182.     data_item = [f_name, l_name, user_id, email, job_title, organization,phone,country]
  183.     print(data_item)
  184.  
  185.     save_data_to_csv([data_item])
  186.  
  187.  
  188.  
  189.  
  190. with open('member_links.txt', 'r') as file:
  191.  
  192.     for i, url in enumerate(file, start=1):
  193.         url = url.strip()
  194.         print(url)
  195.         get_first_name(url)
  196.         print(f'{i} number url is done')
  197.  
  198.  
  199.