Я разрабатываю приложение для Android для интернет-газеты. Компания уже разработала и разместила свои API-интерфейсы в Google App Engine с поддержкой OAuth 2.0.
Итак, я должен разработать приложение для Android, которое связывается с их развернутым API-интерфейсом с поддержкой OAuth 2.0 и извлекает содержимое ответа от своего назначенного API-интерфейса Google API.Аутентификация моего клиента android для подключения к конечной точке
так по облако конечных точек документации Google для андроид клиентов (например, мое приложение) пытается сделать проверку подлинности вызовов на конечные точки с поддержкой OAuth 2.0, я был направлен на:
- Настройка моего Android клиента (мой приложение для Android), чтобы предоставить учетные данные объекту службы
- выборщика учетных записей для поддержки выбора пользователем учетных записей.
Я следовал инструкциям на Google Cloud Endpoint сайте, но я не понимаю коды образцов, которые были использованы для объяснения, так что я попытался придумать с этим:
class EndpointsAsyncTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new AndroidJsonFactory();
try {
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(CLIENT_EMAIL)
.setServiceAccountScopes(Collections.singleton("https://www.googleapis.com/auth/userinfo.email"))
.setServiceAccountPrivateKeyFromP12File(new File("file.p12"))
.build();
/*so now what do I do with the credential object
and how do I set the root URL (https://project-id-endpoints.appspot.com/_ah/api)
that the android client(this android app)
will connect to in the backend API call
*/
}
catch(GeneralSecurityException gse){
gse.printStackTrace();
}
catch(IOException ioe){
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
}
всякий раз, когда я запускаю коды, отчет журнала на разработчика Google Консоль говорит
«Uauthorised доступ» означает вызов аутентификации не работает ...
Ниже мой код для открытия соединения GET URL одному из содержания службы API:
public String open() throws IOException{
InputStream inputStream = null;
int len = 500;
try {
URL url = new URL("https://project-name-api-endpoints.appspot.com/_ah/api/core/v5.1.1/info/category/en");
URLConnection urlConnection = url.openConnection();
inputStream = urlConnection.getInputStream();
String content = readIt(inputStream, len);
return content;
}//end try
finally {
if(inputStream != null)
{
inputStream.close();
}
}
}
У меня есть вопрос будет:
Что делать с учетными данными объекта и как я установите URL-адрес корня (https://project-id-endpoints.appspot.com/_ah/api
), к которому подключается клиент android-приложения (это приложение для Android) в интерфейсе API-интерфейса
моя проблема в том, что .. Я не понимаю документацию Google, по которой я поделился ссылкой ...и мне нужна помощь в подключении моего приложения для Android к конечным точкам google api – Isaac
Похоже, вы хотите взять свой существующий проект App Engine и превратить его в конечную точку Cloud, к которой подключается приложение для Android, верно? –
"* Я не понимаю документацию Google, в которой я поделился ссылкой *. Мы не можем объяснить, как работает материал на сайте Q & A. Вы должны продолжать читать, пока не поймете это, спросите на форуме (где обсуждения более приветствуются) или поставите здесь более четкий вопрос о конкретной части кода, с которым вы боретесь. – James