Аутентификация 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

Другие вопросы по тегам