Админ-сдк с маркетплейсом не работает

Я пытался создать приложение на рынке с помощью admin-sdk.

Читая документы, похоже, что двухсторонняя аутентификация — единственный способ добиться успеха в отношении приложений для маркетплейса.

Хотел проверить, является ли текущий пользователь администратором, поэтому для этого я хотел использовать

https://www.googleapis.com/admin/directory/v1/users/(useremail)?xoauth_requestor_id=(admin-email)

Я пытался и быть таким же, и быть админом

Заголовок авторизации также выглядит следующим образом.

OAuth realm="", oauth_signature_method="HMAC-SHA1", 
oauth_version="1.0", oauth_consumer_key="<key from market place>",
oauth_nonce="4473365854789985180", oauth_timestamp="1380453874",
scope="https://www.googleapis.com/auth/admin.directory.user", 
oauth_signature="yEcbWIp5f1nNFaUI8vSxn1NYlzw="

Когда этот запрос делается для URL-адреса, я получаю сообщение об ошибке.

"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"

Я искал API, чтобы сделать это, но не смог найти двухногий с admin-sdk. Может ли кто-нибудь помочь мне решить проблему?

Также можно ли реализовать такую ​​функцию с помощью сервисных учетных записей?

Я также хотел, чтобы в конце концов admin-sdk использовался для golang.


person George Thomas    schedule 29.09.2013    source источник


Ответы (1)


Marketplace по-прежнему использует OAuth 1.0. Поэтому я не думаю, что вы действительно можете использовать учетную запись службы, как это действительно для OAuth 2.0.

Вы проверили эти два документа? https://developers.google.com/accounts/docs/OAuth#GoogleAppsOAuth https://developers.google.com/gdata/docs/auth/oauth#2LeggedOAuth

В любом случае, вы хотите убедиться, что используете clientID и секрет клиента, для которого включен Admin SDK, сгенерированный из консоли API. Кроме того, у вас также был включен clientID с областью Admin SDK в разделе «Управление сторонним протоколом OAuth» в консоли администратора?

Я смог сделать следующий вызов без проблем:

https://www.googleapis.com/admin/directory/v1/users/[email protected][email protected]&key=APIkey_from_API_console

person Emily    schedule 30.09.2013
comment
Вы использовали какой-то API, чтобы сделать это, или у вас был такой инструмент, как curl, чтобы сделать это? Я использую clientID и clientSecret из списка поставщиков на рынке. Также добавлена ​​область API каталога в manifest.xml, и администратор, в котором я пытался установить приложение, принял доступ. Если бы вы могли предоставить фрагменты кода или ссылки на API, это было бы действительно полезно для меня? - person George Thomas; 01.10.2013
comment
Также должны ли мы указывать область с запросом в двустороннем режиме, в документах об этом ничего не упоминается, или это должно быть указано только в URL-адресе области? - person George Thomas; 01.10.2013
comment
Когда я смотрю на консоль, я получаю ключ браузера, который нужно использовать? - person George Thomas; 01.10.2013
comment
Все заработало с предложенными изменениями. Также это работало без использования ключевого параметра для меня. Ответ приходит только тогда, когда скрипт запускается из домена, на котором размещено приложение, и больше нигде. Я думаю, что это была проблема, с которой я столкнулся. - person George Thomas; 01.10.2013