IBM Watson UnAuthorized - PullRequest
       61

IBM Watson UnAuthorized

0 голосов
/ 12 апреля 2020

Я внедрил IBM watson Assistant, и он отлично работает на android отладке. Проблема возникает, когда я строю подписанный apk. Это всегда говорит несанкционированный. Я не думаю, что это ключ, потому что он отлично работает в режиме отладки. Мне нужна помощь, потому что проект живой. До сих пор я пытался изменить ключ в облаке IBM и пробовал другие ключи, но возникает не найденное исключение, которое, я думаю, вызвано неправильным ключом. Должен ли я что-то разрешить в облаке IBM для подписанного apk? или есть сертификат от подписанного apk, который я должен загрузить в облаке IBM? Я использую IBM watson Assistant v2

private Assistant watsonAssistant;
private Response<SessionResponse> watsonAssistantSession;

private void createServices() {
    watsonAssistant = new Assistant("2020-04-01", new IamAuthenticator(getString(R.string.assistant_apikey)));
    watsonAssistant.setServiceUrl(getString(R.string.assistant_url));
}

private void sendMessage(){
    Thread thread = new Thread(() -> {
                    try {
                        if (watsonAssistantSession == null) {
                            ServiceCall<SessionResponse> call = watsonAssistant.createSession(new CreateSessionOptions.Builder().assistantId(getString(R.string.normal_assistant_id)).build());
                            watsonAssistantSession = call.execute();
                        }
                        MessageInput input = new MessageInput.Builder()
                                .text(userInput)
                                .build();
                        MessageOptions options = new MessageOptions.Builder()
                                .assistantId(getString(R.string.normal_assistant_id))
                                .input(input)
                                .sessionId(watsonAssistantSession.getResult().getSessionId())
                                .build();
                        Response<MessageResponse> response = watsonAssistant.message(options).execute();
                        if (response.getResult().getOutput() != null && !response.getResult().getOutput().getGeneric().isEmpty()) {
                            List<RuntimeResponseGeneric> responses = response.getResult().getOutput().getGeneric();
                            for (RuntimeResponseGeneric r : responses) {
                                switch (r.responseType()) {
                                    case "text":
                                        aiResponse = r.text();
                                        aiConversationList.add(new AIConversation(r.text(), "ai", System.currentTimeMillis()));
                                        break;
                                    default:
                                        Log.e("Error", "Unhandled message type");
                                }
                            }
                            runOnUiThread(() -> {
                                sendConvoToServer(userInput, aiResponse);
                                txtWelcomeAI.setVisibility(View.VISIBLE);
                                aiAdapter.notifyItemInserted(aiConversationList.size() - 1);
                                userInputTxt.setEnabled(true);
                                pRecyclerView.scrollToPosition(aiConversationList.size() - 1);
                                aStatus.setText("online");

                            });
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        Log.e("IBM_EXCEPTION", e.toString());
                        aiConversationList.add(new AIConversation("Oops! Something went wrong", "ai", System.currentTimeMillis()));
                        aiAdapter.notifyItemInserted(aiConversationList.size() - 1);
                        runOnUiThread(() -> {
                            pRecyclerView.scrollToPosition(aiConversationList.size() - 1);
                            aStatus.setText("online");
                            userInputTxt.setEnabled(true);
                        });
                    }
                });
                thread.start();
}

1 Ответ

0 голосов
/ 13 апреля 2020

В случае, если у кого-то еще возникнут проблемы между отладочными и релиз-апками, как у меня, попробуйте проверить, не сделали ли вы запутывание. Если так, то запутывание, вероятно, является проблемой. По крайней мере, это было для меня. Итак, либо отключите запутывание в вашем build.gradle на уровне приложения, либо добавьте некоторые правила в proguard-rules

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...