Как заставить oauth2 и webbot открываться в одном сеансе браузера? - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу:

  1. Открыть веб-браузер
  2. Войти в учетную запись Fitbit A
  3. Запустить команду для получения данных Fitbit
  4. Публикация данных о Fitbit на листе Google
  5. Выйти из FitBIT
  6. Войдите в учетную запись F FitBit и повторите шаги 3-5

Мой вопрос сфокусирован на том, что приведенный ниже код не работает для шага 3.

Приведенный ниже код автоматически открывает новое окно chrome и входит в учетную запись A, но затем во время настройки oauth2 открывает мой обычный google chrome сеанс, когда я вошел в fitbit с другой учетной записью.

Если код Oauth2 открылся в том же окне chrome, в котором я вошел в учетную запись A, я мог бы легко запустить код для получения данных, войти , а затем войдите в новую учетную запись. Как мне заставить их открыться и остаться в том же окне?

import fitbit
import gather_keys_oauth2 as Oauth2
import pandas as pd
import datetime
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import os
from webbot import Browser

#Open web browser and log in
web = Browser()
web.go_to('https://accounts.fitbit.com/login')
web.type('example.com', into='Email')
web.click('NEXT', tag='span')
web.type('password123', into='Password', id='ember643')
web.click('Login', tag='span')

# Oauth2 setup
server = Oauth2.OAuth2Server(CLIENT_ID, CLIENT_SECRET)
server.browser_authorize()
ACCESS_TOKEN = str(server.fitbit.client.session.token['access_token'])
REFRESH_TOKEN = str(server.fitbit.client.session.token['refresh_token'])
auth2_client = fitbit.Fitbit(CLIENT_ID, CLIENT_SECRET, oauth2=True,
                             access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN)
...