Начиная с Google Cloud Endpoint, например, крестики-нолики (см https://github.com/GoogleCloudPlatform/appengine-endpoints-tictactoe-java)Как добавить аутентификацию в конечные точки Google Cloud?
Затем создайте "AppEngine Connected Android Project" с помощью Ellipse в последнем плагином Android Ellipse (см https://developers.google.com/eclipse/docs/endpoints-androidconnected-gae)
Теперь это создает конечных точек без аутентификации.
// @Api(name = "messageEndpoint")
//NO AUTHENTICATION; OPEN ENDPOINT!
Теперь попробуйте добавить аутентификацию с использованием приложения tic tac toe в качестве примера.
@Api(name = "messageEndpoint",
version = "v1",
clientIds = {Ids.WEB_CLIENT_ID, Ids.ANDROID_CLIENT_ID, Ids.IOS_CLIENT_ID, com.google.api.server.spi.Constant.API_EXPLORER_CLIENT_ID},
audiences = {Ids.ANDROID_AUDIENCE}
)
В случае OAuth исключения добавить следующее:
//public void sendMessage(@Named("message") String message)
//throws IOException {
public void sendMessage(@Named("message") String message)
throws OAuthRequestException,IOException {
И тест с помощью API проводника, https: // [ваш-приложение-] .appspot.com/_ah/api/explorer, я заменил [your-app-id] своим конкретным идентификатором приложения.
POST https://[your-app-id].appspot.com/_ah/api/messageEndpoint/v1/sendMessage/test
X-JavaScript-User-Agent: Google APIs Explorer
503 Service Unavailable
cache-control: private, max-age=0
content-encoding: gzip
content-length: 193
content-type: application/json; charset=UTF-8
date: Mon, 01 Apr 2013 22:57:17 GMT
expires: Mon, 01 Apr 2013 22:57:17 GMT
server: GSE
{
"error": {
"errors": [
{
"domain": "global",
"reason": "backendError",
"message": "java.lang.NoClassDefFoundError: Could not initialize class com.brooklynmarathon.citysync.endpoints.EMF"
}
],
"code": 503,
"message": "java.lang.NoClassDefFoundError: Could not initialize class com.brooklynmarathon.citysync.endpoints.EMF"
}
}
Я попытался исследователь с крестиками носка приложением Tac, что я скачал (спасибо Google Dev Rel) и построен и закачанное здесь: https://brooklynmarathon.appspot.com/_ah/api/explorer
Когда я пытаюсь получить доступ к списку оценки, я вижу:
GET https://brooklynmarathon.appspot.com/_ah/api/tictactoe/v1/score
X-JavaScript-User-Agent: Google APIs Explorer
Response
401 Unauthorized
- Hide headers -
cache-control: private, max-age=0
content-encoding: gzip
content-length: 193
content-type: application/json; charset=UTF-8
date: Tue, 02 Apr 2013 01:14:40 GMT
expires: Tue, 02 Apr 2013 01:14:40 GMT
server: GSE
www-authenticate: GoogleLogin realm="https://www.google.com/accounts/ClientLogin", service="xapi"
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "com.google.appengine.api.oauth.OAuthRequestException: Invalid user.",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "com.google.appengine.api.oauth.OAuthRequestException: Invalid user."
}
}
Мой вопрос почему крестики нолики пример имеет заголовок: "WWW-Authenticate: GoogleLogin области действия =" https://www.google.com/accounts/ClientLogin», услуги = "XAPI" и
В общем, как мы можем добавить аутентификацию в созданные «Консолидированные Android-приложения», созданные для Android?
Из веб-приложений, клиентов Android и iOS-клиентов, и можем ли мы протестировать его из проводника api?
Какие значения используются для 'Ids. * _ CLIENT_ID'? – Drux
+ Drux Спасибо, что спросили, но я перешел и использовал решение python, которое работает, поэтому нет необходимости отвечать на это. –