Salesforce现场代理商状态

时间:2018-07-17 11:55:11

标签: java android salesforce salesforce-service-cloud

我已经根据documentation实现了代理的实时可用性。问题是根据文档,它会以 OnResult 方法进入,但是每次响应都以 OnCompleted 方法进入,而我无法从异步中检索代理状态。 strong>变量。 如果我缺少任何内容或如何从 OnCompleted 获取实时代理可用性,请指导我。

我的代码(在HomeFragment中调用)

private void setupChatButton() {
        try {


            // Build a configuration object
            ChatConfiguration chatConfiguration =
                    new ChatConfiguration.Builder(ORG_ID, BUTTON_ID,
                            DEPLOYMENT_ID, LIVE_AGENT_POD)
                            .build();


            // Create an agent availability client
            AgentAvailabilityClient client = ChatCore.configureAgentAvailability(chatConfiguration);

            // Check agent availability
            client.check().onResult((async, state) -> {

                switch (state.getStatus()) {
                    case AgentsAvailable: {
//                            Toast.makeText(context, "Available  Chat", Toast.LENGTH_LONG).show();
                        isAgentAvailable = true;
                        fabChat.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.colorAccent));
                        break;
                    }
                    case NoAgentsAvailable: {
//                            Toast.makeText(context, "NOAGENTS  Chat", Toast.LENGTH_LONG).show();
                        isAgentAvailable = false;
                        fabChat.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.grey));
                        break;
                    }
                    case Unknown: {
//                            Toast.makeText(context, "UNKNOWN  Chat", Toast.LENGTH_LONG).show();
                        isAgentAvailable = false;
                        fabChat.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.grey));
                        break;
                    }
                }
            })
                    .onComplete(async -> {
                        Log.e("Home Fragment ", "Chat Call completed");
                        if (async.isComplete()) {
                            isAgentAvailable = true;
                            fabChat.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.colorAccent));
                        } else {
                            isAgentAvailable = false;
                            fabChat.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.grey));
                        }
//                            Toast.makeText(context, "Chat Completed!", Toast.LENGTH_LONG).show();
                    });

        } catch (Exception e) {
            Log.e(getContext().getClass().getSimpleName(), e.getMessage());
        }

1 个答案:

答案 0 :(得分:0)

因此,事实证明我的gradle文件中缺少某些依赖项,更新的库版本也要求您使用minSDK 21,而我使用的是minSDK 19。

以下是支持聊天和preChat功能所需的依赖项:

implementation 'com.salesforce.service:chat-ui:3.1.0'
implementation 'com.salesforce.service:chat-core:3.1.0'

显然,官方文档中没有对此的引用。

Reference Agent

Reference Chat