日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

事件上報接口規范

本文檔提供Quick Audience事件上報開放接口,當您采用自主接入的事件上報方式時可使用。

完整的自主接入事件數據上報流程,請參見自主接入上報流程

說明

當前僅提供Java語言的SDK。

安裝Java SDK

操作步驟:

  1. 安裝阿里云Java核心庫,請參見安裝Alibaba Cloud SDK for Java

    SDK使用說明,請參見Java示例

  2. 訪問Aliyun Java SDK Retailadvqa Public,下載并安裝Quick Audience Java SDK。

  3. 下載quicka-openapi-sdk-4.4.0-SNAPSHOT.jar,加入項目目錄。

  4. 在項目目錄下的pom.xml文件中,添加以下Maven依賴。

<dependency>
        <groupId>com.aliyun.quicka</groupId>
        <artifactId>quicka-openapi-sdk</artifactId>
        <version>4.4.0-SNAPSHOT</version>
        <scope>system</scope>
        <!--以下替換為quicka-openapi-sdk-4.4.0-SNAPSHOT的目錄地址-->
        <systemPath>/Users/fin-13921/Documents/project/qa-second/Abc/quicka-openapi-sdk-4.4.0-SNAPSHOT.jar</systemPath>
    </dependency>

    <dependency>
    <groupId>com.aliyun.api.gateway</groupId>
    <artifactId>sdk-core-java</artifactId>
    <version>1.1.6</version>
</dependency>

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <optional>true</optional>
    <version>[4.5.6,5.0.0)</version>
</dependency>

獲取接口通用參數

調用開放接口前需要獲取幾個通用參數:

參數名稱

含義

獲取方法

endpoint

Quick Audience開放接口的訪問地址。

公共云Quick Audience開放接口的訪問地址為:

  • 張家口:quicka-public.cn-zhangjiakou.aliyuncs.com

  • 上海:quicka-public.cn-shanghai.aliyuncs.com

  • 深圳:quicka-public.cn-shenzhen.aliyuncs.com

accessId

您的Quick Audience的組織ID。

組織管理員賬號登錄Quick Audience后,選擇管理中心>組織管理>組織系統配置,頁面展示的AccessKey ID即為組織ID,您可以單擊復制按鈕進行復制。

workspaceId

事件歸屬的工作空間ID。

選填。若不傳入,當不同空間有多個相同事件編碼的事件時,多個事件均將獲得上報的數據。

組織管理員賬號登錄Quick Audience后,選擇管理中心>組織管理>工作空間管理,在列表中查詢工作空間對應的ID。

ACCESS_KEY_ID、ACCESS_SECRET

具有Quick Audience訪問權限的RAM用戶的AccessKey ID、AccessKey Secret。

具有Quick Audience訪問權限的RAM用戶登錄RAM控制臺,創建并獲取AccessKey ID、AccessKey Secret,請參見創建AccessKey

阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。

強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。

本示例以將AccessKey 和 AccessKeySecret 保存在環境變量為例說明。

SDK demo示例

import com.alibaba.fastjson.JSON;
import com.aliyuncs.AcsRequest;
import com.aliyuncs.AcsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.retailadvqa_public.client.QAHttpApiClient;
import com.aliyuncs.retailadvqa_public.client.constants.enums.GatewayType;
import com.aliyuncs.retailadvqa_public.client.constants.enums.InvokerType;
import com.aliyuncs.retailadvqa_public.client.model.event.ClientEventMessageModel;
import com.aliyuncs.retailadvqa_public.client.model.event.CustomerIdModel;
import com.aliyuncs.retailadvqa_public.client.param.PopClientBuilderParam;
import com.aliyuncs.retailadvqa_public.model.v20200515.ReceiveEventMessageRequest;
import com.aliyuncs.retailadvqa_public.model.v20200515.ReceiveEventMessageResponse;
import org.junit.Before;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;


public class EventCenterPopTest {
    /**
     *組織ID
     */
    private final static String accessId = "78e8f4b4***5ae16b59b";

    /**
     * ************ pop網關參數 ****************
     */

    /**
     * quicka-public.[RegionId].aliyuncs.com
     */
    protected final static String ENDPOINT = "quicka-public.cn-shanghai.aliyuncs.com";
    protected final static String REGION_ID = "cn-shanghai";
    protected final static String ENDPOINT_NAME = "retailadvqa-public";
    protected final static String PRODUCT = "retailadvqa-public";
    /**
     *工作空間ID,選填
     */
    String workspaceId = "f35f12d7****ccdf9da93ad3";

    @Before
    public void init() throws ClientException {
      /**
       * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
       * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
       * 本示例以將AccessKey 和 AccessKeySecret 保存在環境變量為例說明。
       * 保存環境變量的方法參考如下:
       * Linux和macOS系統配置方法
       * 執行以下命令:
       * export SCA_AK_ENV=<access_key_id>
       * export SCA_SK_ENV=<access_key_secret>
       * <access_key_id>替換為已準備好的AccessKey ID,<access_key_secret>替換為AccessKey Secret。
       */
      	PopClientBuilderParam popClientBuilderParam = PopClientBuilderParam.builder()
                .endpointName(ENDPOINT_NAME)
                .endpoint(ENDPOINT)
                .accessKeyId(System.getenv("SCA_AK_ENV"))
                .accessSecret(System.getenv("SCA_SK_ENV"))
                .regionId(REGION_ID)
                .product(PRODUCT).build();
        QAHttpApiClient.initPopInstance(popClientBuilderParam);
    }


    /**
     * 事件數據上報消息明細
     */
    @Test
    public void receiveMessage() {
        ReceiveEventMessageRequest request = new ReceiveEventMessageRequest();
        // 組織ID
        request.setAccessId(accessId);
        ClientEventMessageModel clientEventMessageModel = new ClientEventMessageModel();
        // 工作空間ID,選填
        clientEventMessageModel.setWorkspaceId(workspaceId);
        // 事件編碼
        clientEventMessageModel.setEventCode("testEventCode");
        // 事件屬性,包含屬性編碼和屬性值
        clientEventMessageModel.setExtendAttributes(new HashMap<String, String>(){{
            this.put("occur_time_default", "1658112165000");
            this.put("attr_code", "attr_value");
        }});
        // 用戶在您自有體系中的用戶ID
        clientEventMessageModel.setCustomerId("100001");
        // 是否是交易數據,0 (不是) / 1 (是)
        clientEventMessageModel.setIsOrder(0);
        // 事件發生時間
        clientEventMessageModel.setEventTime(System.currentTimeMillis());
        // Quick Audience空間支持的用戶ID,必填
        clientEventMessageModel.setCustomerIdList(new ArrayList<CustomerIdModel>(){{
            this.add(new CustomerIdModel("188****5531", "MOBILE"));
        }});

        request.setEventMessageModelListJson(JSON.toJSONString(Arrays.asList(clientEventMessageModel)));
        
        try {
            ReceiveEventMessageResponse acsResponse = (ReceiveEventMessageResponse) invoke(request);
            if (acsResponse.getSuccess()) {
                System.out.println("success");
                System.out.println(JSON.toJSONString(acsResponse));
            } else {
                System.out.println(JSON.toJSONString(acsResponse));
            }

        } catch (ClientException e) {
            e.printStackTrace();
        }
    }

    private AcsResponse invoke(AcsRequest request) throws ClientException {
        return QAHttpApiClient.invoke(request, GatewayType.POP, InvokerType.OTHER);
    }
    
}

事件數據上報接口

接口描述

用于發送事件數據實時上報消息,自主接入方式。

URL

openapi/event/detail/receive?=accessId

請求方式

post

參數名

數據類型

參數類型

是否必填

說明

1.accessId

string

body

AccessKey ID,您的Quick Audience的組織ID。

2.eventMessageModelListStr

string

詳細見下面的事件模型ClientEventMessageModel

狀態碼

說明

200

接口請求成功

其他

請求失敗

返回屬性名

類型

說明

1.traceId

string

請求的唯一ID,用于跟蹤鏈路上的問題。

2.success

boolean

服務器處理是否成功。

3.errorCode

string

錯誤碼。

4.errorDesc

string

錯誤描述。

示例

請求參數

curl --location --request POST 'https://endpoint/openapi/event/detail/receive?accessId=7*****65ae16b59b' \ --form 'eventMessageModelListJson="[{\"comeFrom\":\"test\",\"customerId\":\"100001\",\"customerIdList\":[{\"customerId\":\"188****5531\",\"idMapping\":\"MOBILE\"}],\"eventCode\":\"testEventCode\",\"eventTime\":1658226007958,\"extendAttributes\":{\"attr_code\":\"attr_value\",\"occur_time_default\":\"1658112165000\"}}]"'

返回值

{

"errorCode": null,

"errorDesc": null,

"success": true,

"traceId": "ff0f996e-6c63-412d-a4cd-acf5d007****"

}

事件模型ClientEventMessageModel

@Data
public class ClientEventMessageModel {

    /**
     * 組織ID,必填
     */
    String organizationId;

    /**
     * 空間ID,選填
     */
    String workspaceId;

    /**
     * 用戶在您自有體系中的用戶ID,必填
     */
    String customerId;

    /**
     * 事件編碼,必填
     */
    String eventCode;

    /**
     * 事件發生時間,必填
     */
    Long eventTime;

    /**
     * 事件屬性,是否必填取決于事件定義中對屬性的設置
     */
    Map<String, String> extendAttributes = new HashMap<>();

    /**
     * Quick Audience空間支持的用戶ID,若之前同一個customerId上報過customerIdList,則選填
     */
    List<CustomerIdModel> customerIdList = new ArrayList<>();

    /**
     * 是否是交易數據,0 (不是) / 1 (是)
     */
    String isOrder;
}

@Data
public class CustomerIdModel {
    String customerId;
    String idMapping;
    public CustomerIdModel() {
    }
    public CustomerIdModel(String customerId, String idMapping) {
        this.customerId = customerId;
        this.idMapping = idMapping;
    }
}

CustomerIdModel:

public class CustomerIdModel {
    @ApiModelProperty(required = true, value = "實際用戶ID,如手機號類型的139****0000")
    String customerId;
    @ApiModelProperty(required = true, value = "用戶ID類型,如手機號,請參見下面的用戶ID類型說明")
    String idMapping;
}

用戶ID類型說明:

Quick Audience空間支持的用戶ID類型包括本空間的ID類型管理頁面中所有已啟用狀態的ID類型,請在代碼中使用ID類型編碼作為ID類型的名稱。

  • 系統預置ID的ID類型編碼,請查閱系統預置ID列表

  • 自定義ID的ID類型編碼,請單擊ID對應的編輯按鈕進行查看。