Аутентификация API хранилища данных Google в Python
Аутентификация запросов, особенно с помощью API Google, невероятно сбивает с толку!
Я хотел бы делать авторизованные HTTP-запросы POST через python, чтобы запрашивать данные из хранилища данных. У меня есть служебная учетная запись и файл p12, все готово к работе. Я посмотрел на примеры, но, похоже, что бы я ни пытался, я всегда не уполномочен делать запросы.
Все отлично работает из браузера, поэтому я знаю, что мои разрешения все в порядке. Итак, я полагаю, что мой вопрос заключается в том, как аутентифицировать и безопасно запрашивать данные из API Datastore через python?
Я так потерян...
1 ответ
Вам, вероятно, не следует использовать необработанные POST-запросы для использования Datastore, вместо этого используйте библиотеку gcloud, чтобы выполнить тяжелую работу за вас.
Я бы также порекомендовал начальную страницу Python, так как там есть несколько хороших руководств.
Наконец, я записал подкаст, в котором рассказывал об основах использования Datastore с Python, посмотрите его!
Вот код, а вот пример:
#Import libraries
from gcloud import datastore
import os
#The next few lines will set up your environment variables
#Replace "YOUR_RPOEJCT_ID_HERE" with the correct value in code.py
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "key.json"
projectID = "YOUR_RPOEJCT_ID_HERE"
os.environ["GCLOUD_TESTS_PROJECT_ID"] = projectID
os.environ["GCLOUD_TESTS_DATASET_ID"] = projectID
datastore.set_default_dataset_id(projectID)
#Let us build a message board / news website
#First, create a fake email for our fake user
email = "me@fake.com"
#Now, create a 'key' for that user using the email
user_key = datastore.Key('User', email)
#Now create a entity using that key
new_user = datastore.Entity( key=user_key )
#Add some fields to the entity
new_user["name"] = unicode("Iam Fake")
new_user["email"] = unicode(email)
#Push entity to the Cloud Datastore
datastore.put( new_user )
#Get the user from datastore and print
print( datastore.get(user_key) )
Этот код лицензирован под Apache v2