В моем приложении для Android я интегрирую агента Dialogflow V2. Специального SDK для Android пока нет. Поэтому я использую клиентскую библиотеку Java из Dialogflow. следовал за учебником https://github.com/dialogflow/dialogflow-java-client-v2/issues/25.
Я добавил зависимости (dialogflow & oauth2) и создал учетную запись службы в консоли google-cloud. Добавил файл учетных данных в папку raw. следуя инструкциям здесь https://github.com/dialogflow/dialogflow-java-client-v2/issues/25. Получение ошибки как
java.lang.NoSuchMethodError: Нет статического метода
decodeBase64 (Ljava / lang / String;) [B в классе
Lorg / апач / Обще / кодек / двоичный / Base64; или его супер классы
(объявление org.apache.commons.codec.binary.Base64 'появляется в
/system/framework/org.apache.http.legacy.boot.jar)
private void createDialogflow() {
try {
InputStream stream = getResources().openRawResource(R.raw.dialogflow_service_credentials);
GoogleCredentials credentials = GoogleCredentials.fromStream(stream);
String projectId = ((ServiceAccountCredentials) credentials).getProjectId();
SessionsSettings.Builder settingsBuilder = SessionsSettings.newBuilder();
SessionsSettings sessionsSettings = settingsBuilder.setCredentialsProvider(FixedCredentialsProvider.create(credentials)).build();
sessionsClient = SessionsClient.create(sessionsSettings);
String uuid = UUID.randomUUID().toString();
session = SessionName.of(projectId, uuid);
} catch (Exception e) {
e.printStackTrace();
}
}
private void sendMessage(String msg) {
// Java V2
setTypingMessage();
QueryInput queryInput = QueryInput.newBuilder().setText(TextInput.newBuilder().setText(msg).setLanguageCode("en-US")).build();
new RequestJavaV2Task(mContext, session, sessionsClient, queryInput).execute();
}
public void callbackV2(DetectIntentResponse response) {
removeTyingMessage();
if (response != null) {
// process aiResponse here
String botReply = response.getQueryResult().getFulfillmentText();
Log.d("botReply", "V2 Bot Reply: " + botReply);
setBotMessage(botReply);
} else {
Log.d("botReply", "Bot Reply: Null");
setBotMessage("There was some communication issue. Please Try again!");
}
}
Существуют ли четкие документы о том, как интегрировать Dialogflow v2 в мое приложение для Android.