Что требуется для получения учетных данных OAuth2 для моего приложения marketplace?

#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. Рад слышать, что я мог бы помочь 🙂