保利威文档中心

幫助中心

批量取得點播影片完成度

更新時間:2022-05-16 10:08:41

介面URL

https://api.polyv.net/v2/video/engagement/{userId}/getList

介面說明

支援批量分頁取得影片觀看完成度
支援https

支援格式

JSON

請求方式

POST,GET

請求數限制

TRUE

請求參數

參數名 必填 類型及範圍 說明
userid true string 路徑參數,使用者userId
ptime true float 13位的當前時間毫秒級時間戳
sign true String 簽名,為40位大寫的SHA1值【詳見簽名生成規則
field true string 查詢條件欄位,取值範圍:video 根據影片搜尋;viewer 根據觀眾搜尋
fieldValue true string 查詢條件的值,如果filed = video 填寫vid;如果field = viewer 填寫 viewerId
filterValue false string 過濾條件,如果field = video,可填寫多個以,分隔的viewerId進行過濾;如果field = viewer,可填寫多個以,分隔的vid進行過濾
page false int 第幾頁,預設1
size false int 每一頁大小

回傳結果

{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": {
        "pageSize": 20,
        "pageNumber": 1,
        "totalItems": 1,
        "contents": [
            {
                "vid": "ee7fe7fbdadafe381e8e100669144e51_e",
                "viewerId": "1111",
                "watchPercentage": 0.05
            }
        ]
    }
}

請求失敗回傳json範例

// 签名错误
{
    "code": 400,
    "status": "error",
    "message": "the sign is not right.",
    "data": ""
}
// 类型错误
{
    "code": 400,
    "status": "error",
    "message": "field type error",
    "data": ""
}
// ...

欄位說明

欄位 類型 說明
code int 請求回傳狀態碼
status string 請求回傳狀態
message string 請求回傳資訊
data.pageSize int 每頁大小
data.pageNumber int 第幾頁
data.totalItems int 總數量
data.content[0].vid string 影片vid
data.content[0].viewerId string 觀眾viewerId
data.content[0].watchPercentage float 觀看完成度

Java範例程式碼

public class Test {

    public static void main(String[] args) throws Exception {
        String userId = "ee7fe7fbda";
        String secretkey = "2owGBAZsAY";
        String url = "https://api.polyv.net/v2/video/engagement/%s/getList";

        Map<String, String> maps = new HashMap<>();
        maps.put("field", "viewer");
        maps.put("fieldValue", "1111");
        maps.put("filterValue", "");
        maps.put("sign", getSign(maps, secretkey));

        url += "?" + buildUrl(maps);
        url = String.format(url, userId);
        HttpClient client = new HttpClient();
        GetMethod getMethod = new GetMethod(url);
        client.executeMethod(getMethod);
        System.out.println(url);
        System.out.println(getMethod.getResponseBodyAsString());
    }

    public static String buildUrl(Map<String, String> maps) {
        List<String> tmp = new ArrayList<>();
        for (Map.Entry<String, String> key : maps.entrySet()) {
            tmp.add(key.getKey() + "=" + key.getValue());
        }
        return String.join("&", tmp);
    }
}
联系客服,在线咨询