#google-oauth #google-apps-marketplace
#google-oauth #google-приложения-marketplace
Вопрос:
Я создал небольшое приложение, которое использует недавно анонсированный API Gmail для поиска полученных электронных писем по определенной строке. Мое новое приложение is опубликовано как скрытое в Chrome / Google Apps Store, и я прочитал, что мне должны быть предоставлены учетные данные OAuth2 для использования с моим приложением.
Например, в этом руководстве (для старого приложения marketplace, которое больше не используется) показано, куда разработчик может перейти, чтобы получить учетные данные для своего приложения marketplace:
Однако в новом магазине я не могу найти нигде, что делает эти учетные данные доступными для меня.
Я пропустил шаг? Нужно ли мне заполнять запрос на просмотр списка приложений Google Apps Marketplace, чтобы получить учетные данные?
Спасибо!
Обновлено решением
У пользователя MeLight есть ответ ниже — создайте учетные данные учетной записи службы, затем используйте их, убедившись, что проект связан с приложением marketplace в интернет-магазине Chrome. Для всех будущих пользователей Google, вот код, используемый для подключения к API и создания service
объекта, который можно использовать для получения сообщений и т. Д.
from oauth2client.client import SignedJwtAssertionCredentials
from apiclient.discovery import build
from oauth2client.tools import run
import os
import httplib2
BASEDIR = os.path.dirname(__file__)
PRIVATE_KEY = BASEDIR "XXXX-privatekey.p12"
SERVICE_ACCOUNT_EMAIL = "XXXX@developer.gserviceaccount.com"
SCOPES = ["https://mail.google.com/"]
USERNAME="someone@targetuser.com"
def main(argv):
f = file(PRIVATE_KEY, 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(service_account_name=SERVICE_ACCOUNT_EMAIL,
private_key=key,
scope=" ".join(SCOPES),
prn=USERNAME)
http = httplib2.Http()
# Authorize the httplib2.Http object with our credentials
http = credentials.authorize(http)
# Build the Gmail service from discovery
service = build('gmail', 'v1', http=http)
Ответ №1:
Вам нужно перейти в облачную консоль, вы можете найти ее здесь: https://console.developers.google.com /
Найдите свой проект в списке и щелкните его. Оттуда APIs amp; AUTH
-> Credentials
.
Вы должны увидеть список клиентов и их учетные данные. Вам понадобится Service Account
— вы можете создать его, если его еще нет.
Комментарии:
1. Я попробовал это сделать, но когда я создал учетную запись службы и попытался пройти аутентификацию с ее помощью через Gmail API, конечная точка вернула HTTP status 500 с сообщением «Ошибка сервера». Насколько я понимаю, не все API разрешают учетные записи служб, особенно если они предоставляют пользовательские данные. Я понятия не имею, является ли это причиной ошибки сервера или нет.
2. Я вернул код к тому, что пробовал ранее, и он сразу же заработал. Мне интересно, не заикался ли API под нагрузкой всех, кто проверял его прошлой ночью. Код для любых будущих посетителей из Google был опубликован в моем вопросе. Большое спасибо за вашу помощь!
3. Я полностью слышу тебя, чувак — у меня были некоторые проблемы с поиском ответов на вопросы marketplace. Рад слышать, что я мог бы помочь 🙂