7

Основной вариант использования IPython как CLI для моих собственных учетных записей Google. То, что я действительно нахожу, - это минимизация суеты между запуском оболочки IPython и фактической выдачей полезных вызовов против API.Простой способ аутентификации с помощью API-интерфейсов Google Python для доступа к собственным учетным записям

Документы для аутентификации с помощью API Google сосредоточены на настройке приложения, которое другой пользователь будет использовать для доступа к своим данным. Это приводит к длительному танцу Oauth с участием браузера, чтобы позволить другим пользователям проходить аутентификацию без ущерба для их учетных данных. Тем не менее, я не против поделиться своими личными полномочиями с самим собой. Я не планирую делиться кодом. Если бы я разделил код, я бы использовал что-то вроде dotenv, чтобы отделить учетные данные от кода.

Twitter предоставляет разработчикам второй набор учетных данных , который позволяет разработчикам получать доступ к своим собственным учетным записям для тестирования. Таким образом, можно получить доступ к собственным учетным записям программно , просто предоставив наборы учетных данных: учетные данные разработчика, которые разрешают вызовы API и другие учетные данные, которые предоставляют доступ к собственным данным разработчиков. Для example:

from twitter import * 

t = Twitter(
    auth=OAuth(token, token_key, con_secret, con_secret_key)) 

# Get your "home" timeline 
t.statuses.home_timeline() 

# Update your status 
t.statuses.update(
    status="Tweeting from Python") 

Где con_secret* являются учетными данными для разработчиков и и token* являются учетными данными для доступа учетной записи.

  • Как я могу сделать что-то столь же простое с помощью API Google?
  • Где я могу получить учетные данные для доступа к своей учетной записи?
  • Как я могу использовать их в Google API?

В качестве примера рассмотрим, какая будет самая простая процедура для извлечения содержимого из одного из моих собственных плейлистов Youtube?


У меня есть мнение, что библиотека браузеров без заголовка Python может дать мне то, что мне нужно. Я задал соответствующий вопрос на SE Software Рекомендации https://softwarerecs.stackexchange.com/questions/35744/python-headless-browser-library-for-oauth2-authentication-from-ipython-console

+0

Бит путать - Значит, вы хотите иметь возможность использовать API без oauth? или без необходимости вводить имя пользователя/пароль в каждый раз? – JayIsTooCommon

+1

@JayIsTooCommon Я хотел бы загрузить набор учетных данных после их локального хранения и использовать их, продолжая использовать их, но каждый раз, когда я хочу войти в систему, я не буду получать новые, что я рассказываю об этом. Насколько я понимаю, Twitter использует также Ouath, но позволяет вам получать собственные учетные данные пользователя, чтобы повторно использовать их, используя что-то вроде dotenv. Я говорю об учетных данных пользователя здесь, а не о полномочиях разработчиков, которые вы повторно используете таким образом. –

ответ

6

Я хотел бы загрузить набор учетных

Google предлагает эту возможность через это client_secrets.json файл нравится. Существуют разные способы загрузки, в зависимости от типа учетной записи, которую вы хотите использовать (веб-приложение, установленное приложение, учетная запись службы). Различные методы можно найти here.

Хранить учетные данные локально и продолжать использовать их, не требуя новых учетных данных каждый вызов

Это также не является проблемой, клиент секрет действует до тех пор, пока его продлить - AFAIK нет автоматического если вы не укажете иное.

После того как вы загрузили client_secrets.json, сохраните файл в непубличной директории (обычно внутри вашей директории/конфигурации проекта).

Как и при загрузке файла, для использования файла JSON существуют различные методы (классы потоков) в зависимости от того, какой тип учетной записи вы используете. В качестве примера ниже будут использоваться установленные и веб-приложения;

from oauth2client.client import OAuth2WebServerFlow 
... 
flow = OAuth2WebServerFlow(client_id='your_client_id', 
          client_secret='your_client_secret', 
          scope='scope URL here', 
          redirect_uri='http://example.com/auth_return') 

Других примеры класс потока можно найти here

Надеются, что это помогает - Если вам нужна дополнительная информация, в официальную документации (которая будет предупреждена, может быть невероятно неточными и запутанным) можно найти здесь https://developers.google.com/api-client-library/python/guide/aaa_oauth

+1

Можете ли вы рассказать о «разных методах (классах потоков) для использования файла JSON в зависимости от того, какой тип учетной записи вы используете». Я в основном хочу использовать api в интерактивном режиме из консоли IPython. –

Смежные вопросы