【问题标题】:Sales Force live agent statusSalesforce 实时代理状态
【发布时间】:2018-12-25 02:51:09
【问题描述】:

我已根据documentation 实施代理实时可用性。问题是根据文档,它将落在 OnResult 方法中,但每次响应都落在 OnCompleted 方法中,我无法从 async 检索代理状态强>变量。 如果我遗漏了什么或如何从 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());
        }

【问题讨论】:

    标签: java android salesforce salesforce-service-cloud


    【解决方案1】:

    原来我的 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

    【讨论】:

      猜你喜欢
      • 2018-09-10
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多