Jump to content

Search the Community

Showing results for tags 'google api'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Loại nội dung


Diễn đàn

  • Ban quản trị
    • Thông báo
    • Phòng họp
    • Phòng kỷ luật
  • Ngôn Ngữ Lập Trình
    • C Sharp
    • C/C++
    • AutoIt
    • AutoHotKey
    • Python
    • HTML/PHP/Javascipt
    • REGEX - Regular Expressions
  • Thuê code - Nhận code
    • Góc bán hàng
    • Người thuê code
    • Người nhận code
    • Bóc phốt - Cảnh báo lừa đảo
    • Góc trung gian
  • Máy Tính - Internet
    • Tin Nóng
    • Thủ Thuật Internet
    • Thế Giới Trò Chơi
    • Hệ Điều Hành Windows
    • Phần Mềm
    • MMO
  • Nhà Kho
    • Thùng Rác

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Lọc bởi số lượng của...

Đã tham gia

  • Start

    End


Group


About Me

Found 1 result

  1. Chào các bạn, hôm nay mình xin chia sẻ đoạn code sử dụng google api kết hợp với selenium dùng để tự động lấy access token, refresh access token dành cho các công việc với google API. Cụ thể bài này mình sẽ lấy access token sử dụng cho gmail nhé :") . Nếu lấy sử dụng cho youtube hay sản phẩm khác của google thì ta đọc bài đó. Chuẩn bị : Pyhon 3.6.x, Pycharm, UDF của Google API, Selenium và một số thư viện khác. Trước tiên kiểm tra bạn đã có bộ thư viện chưa, nếu chưa có các bạn có thể cài như sau, mở CMD bằng quyền admin gõ : - Cài đặt Google API : pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib - Cài đặt Selenium : pip install selenium -> OKE. Ta bắt tay vào code nào . Trước hết các bạn import các thư viện vào như sau : from time import sleep from oauth2client.client import flow_from_clientsecrets from oauth2client import file from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.common.exceptions import TimeoutException import re Giờ ta sẽ viết full code nhé, tớ sẽ copy nguyên đoạn code và chỉ rõ tùng dòng tại sao lại viết thế :D, các bạn theo sườn bài viết là được. Ở đây, tớ xin giải thích cái hàm GetExCode trước, vì sao lại có hàm này, hàm này là dùng để lấy đoạn code exchange từ file client secrect để lấy được access_token nhé. Vi muốn tự động nên code này tớ đã kết hợp với selenium để tự động đăng nhập lấy code rồi tự điền vào thôi. from time import sleep from oauth2client.client import flow_from_clientsecrets from oauth2client import file from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.common.exceptions import TimeoutException import re def GetExCode(gg_user, gg_pass, link_oauth): ExChangeCode = '' options = webdriver.ChromeOptions() #Tạo option cho việc khởi động chrome options.add_argument('headless') # option này sẽ giấu cái chrome của chúng ta đi options.add_argument('window-size=1920x1080') # không hiện lên màn hình nữa options.add_argument("disable-gpu") #... MeoChrome = webdriver.Chrome('chromedriver', chrome_options=options) #Khai báo mở chrome mới, với option vừa đc đặt ra ở trên MeoChrome.get(link_oauth) #chạy link để get access token với chrome vừa tạo ở trên delay = 3 # seconds try: WebDriverWait(MeoChrome, delay).until(EC.presence_of_element_located((By.ID, 'identifierId'))) #delay web 3 giây nếu chưa tìm thấy element có ID là : identifierId, nếu k thấy nó sẽ nhảy xuống báo lỗi dòng expect bên dưới, còn thấy nó sẽ xuống dòng tiếp MeoChrome.find_element_by_id('identifierId').send_keys(gg_user) #send username vào MeoChrome.find_element_by_id('identifierNext').click() #click nút tiếp WebDriverWait(MeoChrome, delay).until(EC.presence_of_element_located((By.NAME, 'password'))) #delay 3s nếu chưa tìm thấy element có Name là password sleep(1) # dừng lại 1s MeoChrome.find_element_by_name('password').send_keys(gg_pass) #gửi pass vào sleep(1) # dừng lại 1s MeoChrome.find_element_by_id('passwordNext').click() #click nút đăng nhập tiếp sleep(1) # dừng lại 1s MeoChrome.find_element_by_id('submit_approve_access').click() #click vào nút cấp quyền sleep(3) # dừng lại 3s ExChangeCode = re.findall('<textarea class.*?>(.*?)</textarea>', MeoChrome.page_source)[0] # lấy page sources, lọc ra exchange code MeoChrome.close() # đóng chrome MeoChrome.quit() # xóa chrome except TimeoutException: print("Loading took too much time!") return ExChangeCode #code flow dưới đây sẽ trả về cho chúng ta đoạn link để lấy được exchange code flow = flow_from_clientsecrets('client_secret.json', scope='https://mail.google.com/', redirect_uri='urn:ietf:wg:oauth:2.0:oob') #khai báo thông số cần thiết link_oauth = flow.step1_get_authorize_url() #lấy link exchange code exCode = GetExCode('user', 'pass', link_oauth) #chạy hàm để lấy được exchange code tự động print(exCode) #xem exchange code credentials = flow.step2_exchange(exCode) #nhập exchange code và chuyển thành credentials store = file.Storage('token1.json') #tạo file lưu access token store.put(credentials) #lưu #kết thúc, bài tiếp theo tớ sẽ hướng dẫn sử dụng access token này để làm gì
×
×
  • Create New...