1、食谱TOP接口申请

1.1  定向申请地址

说明:目前只允许企业号进行申请;

http://my.open.taobao.com/common/applyIsv.htm?appTag=212&accessCode=E9780D2AC20DD170450FDBF555F67E3E


1.2  淘宝合作伙伴开发协议

image.png


1.3 填写开发者信息

image.png


1.4 创建食谱应用

image.png


1.5 申请TOP接口

image.png

image.png



2、SDK使用说明

2.1 选择需要的SDK版本进行构建

image.png


2.2 下载SDK并引入代码——JAVA演示

2.2.1 项目引入SDK包

(1)在项目resources目录下创建lib目录,将SDK包导入到该目录下

image.png


(2)pom中引入本地jar包

        <dependency>
            <groupId>ailib-iot</groupId>
            <artifactId>sdk-java-auto</artifactId>
            <version>1576072385423-20200612</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/taobao-sdk-java-auto_1576072385423-20200612.jar</systemPath>
        </dependency>


2.3 食谱TOP接口调用——JAVA演示

2.3.1 插入或更新食谱测试

说明:返回结果是businessRecipeId 行业食谱id;

    /**
     * 插入或更新食谱测试
     */
    public static void insertOrUpdateRecipeTest() throws ApiException {
        DefaultTaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "30281416",
                "4f9918cxxxxxxxxxxxxx6debcebaa");
        AlibabaAilabsIotBusinessRecipeInsertorupdateRequest request = new AlibabaAilabsIotBusinessRecipeInsertorupdateRequest();

        // 接口参数
        BusinessRecipeOpenParam businessRecipeOpenParam = new BusinessRecipeOpenParam();
        // 开放账号id
        businessRecipeOpenParam.setOpenAccountId("a2uDllguxxxxxxM3wkl+w==");
        // 食谱类型 0视频菜谱 1图文菜谱
        businessRecipeOpenParam.setRecipeType(1L);
        // 品类Id
        businessRecipeOpenParam.setDevTypeId(11L);
        // 食谱中文名称
        businessRecipeOpenParam.setRecipeNameCn("蜜瓜奶昔");
        // 食谱描述
        businessRecipeOpenParam.setDescription("蜜瓜富含膳食纤维,酸奶富含益生菌,两者均有助于肠道健康。");
        // 食谱图片
        ImageUrlParam recipeImage = new ImageUrlParam();
        recipeImage.setImg("http://www.xxx.com");
        businessRecipeOpenParam.setRecipeImage(recipeImage);
        // 食谱食材
        List<RecipeIngredientParam> recipeIngredientList = new ArrayList<>();
        RecipeIngredientParam recipeIngredientParam1 = new RecipeIngredientParam();
        recipeIngredientParam1.setName("蜜瓜");
        recipeIngredientParam1.setWeight("300g");
        recipeIngredientList.add(recipeIngredientParam1);
        RecipeIngredientParam recipeIngredientParam2 = new RecipeIngredientParam();
        recipeIngredientParam2.setName("酸奶");
        recipeIngredientParam2.setWeight("300g");
        recipeIngredientList.add(recipeIngredientParam2);
        businessRecipeOpenParam.setRecipeIngredientList(recipeIngredientList);
        request.setParamBusinessRecipeOpenParam(businessRecipeOpenParam);

        // 通用参数
        request.setTimestamp(System.currentTimeMillis());
        request.setTopApiVersion("2.0");
        request.setTopContentType("application/json");
        request.setTopHttpMethod("alibaba.ailabs.iot.business.recipe.insertorupdate");
        request.setTopResponseType("application/json");

        // 接口调用
        AlibabaAilabsIotBusinessRecipeInsertorupdateResponse response = client.execute(request);
        if (response.isSuccess()) {
            System.out.println(response.getBody());
        }
    }


2.3.2 插入或更新食谱步骤测试

说明:返回的是businessRecipeStepId 行业食谱步骤id;

    /**
     * 插入或更新食谱步骤测试
     */
    public static void insertOrUpdateRecipeStepTest() throws ApiException {
        DefaultTaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "30281416",
                "4f9918cxxxxxxxxxxxxx6debcebaa");
        AlibabaAilabsIotBusinessRecipestepInsertorupdateRequest request = new AlibabaAilabsIotBusinessRecipestepInsertorupdateRequest();

        // 接口参数
        BusinessRecipeStepOpenParam businessRecipeStepOpenParam = new BusinessRecipeStepOpenParam();
        // 开放账号Id
        businessRecipeStepOpenParam.setOpenAccountId("a2uDllguxxxxxxM3wkl+w==");
        // 行业食谱id
        businessRecipeStepOpenParam.setBusinessRecipeId(6L);
        // 指令标识:0不支持指令,1支持指令
        businessRecipeStepOpenParam.setActionFlag(1L);
        // 食谱步骤中文名
        businessRecipeStepOpenParam.setRecipeStepNameCn("开始制作");
        // 食谱步骤描述
        businessRecipeStepOpenParam.setDescription("根据食谱称量口口蜜瓜块,然后放入研磨腔内,并加入3杯(300g)酸奶,选择“奶昔”功能键,点击“启动”即可");
        // 食谱步骤顺序号
        businessRecipeStepOpenParam.setSequence(1L);
        // 食谱步骤图片
        com.taobao.api.request.AlibabaAilabsIotBusinessRecipestepInsertorupdateRequest.ImageUrlParam imageUrl = new com.taobao.api.request.AlibabaAilabsIotBusinessRecipestepInsertorupdateRequest.ImageUrlParam();
        imageUrl.setImg("http://www.xxx.com");
        businessRecipeStepOpenParam.setImageUrl(imageUrl);
        // 食谱步骤时间
        businessRecipeStepOpenParam.setRecipeStepTime(180L);
        businessRecipeStepOpenParam.setTips("请检查食材是否都放入研磨腔内");
        // 步骤指令列表
        List<BusinessRecipeStepActionOpenParam> recipeStepActionList = new ArrayList<>();
        BusinessRecipeStepActionOpenParam businessRecipeStepActionOpenParam1 = new BusinessRecipeStepActionOpenParam();
        //   指令名
        businessRecipeStepActionOpenParam1.setActionName("runTime");
        //   指令值
        businessRecipeStepActionOpenParam1.setActionValue("180");
        //   指令顺序号
        businessRecipeStepActionOpenParam1.setSequence(1L);
        recipeStepActionList.add(businessRecipeStepActionOpenParam1);
        BusinessRecipeStepActionOpenParam businessRecipeStepActionOpenParam2 = new BusinessRecipeStepActionOpenParam();
        //   指令名
        businessRecipeStepActionOpenParam2.setActionName("recipeAction");
        //   指令值
        businessRecipeStepActionOpenParam2.setActionValue("2191000151000330031E50000530031E500005700000");
        //   指令顺序号
        businessRecipeStepActionOpenParam2.setSequence(2L);
        recipeStepActionList.add(businessRecipeStepActionOpenParam2);
        businessRecipeStepOpenParam.setRecipeStepActionList(recipeStepActionList);
        request.setParamBusinessRecipeStepOpenParam(businessRecipeStepOpenParam);
        
        // 通用参数
        request.setTimestamp(System.currentTimeMillis());
        request.setTopApiVersion("2.0");
        request.setTopContentType("application/json");
        request.setTopHttpMethod("alibaba.ailabs.iot.business.recipe.insertorupdate");
        request.setTopResponseType("application/json");

        // 接口调用
        AlibabaAilabsIotBusinessRecipestepInsertorupdateResponse response = client.execute(request);
        if (response.isSuccess()) {
            System.out.println(response.getBody());
        }
    }


2.3.3 获取食谱分页数据

说明:返回结果是用户维度的食谱概要数据;

/**
     * 获取食谱分页数据
     * 
     * @throws ApiException
     */
    public static void getRecipePageTest() throws ApiException {
        DefaultTaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "30281416",
                "4f9918cxxxxxxxxxxxxx6debcebaa");
        AlibabaAilabsIotBusinessRecipeGetpageRequest request = new AlibabaAilabsIotBusinessRecipeGetpageRequest();

        // 开放账号id
        request.setOpenAccountId("a2uDllguxxxxxxM3wkl+w==");
        // 分页页数
        request.setPageNum(1L);
        // 分页大小
        request.setPageSize(10L);

        // 通用参数
        request.setTimestamp(System.currentTimeMillis());
        request.setTopApiVersion("2.0");
        request.setTopContentType("application/json");
        request.setTopHttpMethod("alibaba.ailabs.iot.business.recipe.getdetail");
        request.setTopResponseType("application/json");

        // 接口调用
        AlibabaAilabsIotBusinessRecipeGetpageResponse response = client.execute(request);
        if (response.isSuccess()) {
            System.out.println(response.getBody());
        }
    }


2.3.4 获取食谱详情数据

    /**
     * 获取食谱详情测试
     * 
     * @throws ApiException
     */
    public static void getRecipeDetailTest() throws ApiException {
        DefaultTaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "30281416",
                "4f9918cxxxxxxxxxxxxx6debcebaa");
        AlibabaAilabsIotBusinessRecipeGetdetailRequest request = new AlibabaAilabsIotBusinessRecipeGetdetailRequest();

        // 开放账号id
        request.setOpenAccountId("a2uDllguxxxxxxM3wkl+w==");
        // 食谱id
        request.setBusinessRecipeId(1L);

        // 通用参数
        request.setTimestamp(System.currentTimeMillis());
        request.setTopApiVersion("2.0");
        request.setTopContentType("application/json");
        request.setTopHttpMethod("alibaba.ailabs.iot.business.recipe.getdetail");
        request.setTopResponseType("application/json");

        // 接口调用
        AlibabaAilabsIotBusinessRecipeGetdetailResponse response = client.execute(request);
        if (response.isSuccess()) {
            System.out.println(response.getBody());
        }
    }


3、补充文档

3.1 TOP接口操作文档

https://open.taobao.com/doc.htm?docId=101617&docType=1


3.2 OpenAccountId问题

请提供IOT开放平台账号邮箱给小二,由小二生成给到ISV;


3.3 厨电品类文档

https://www.aligenie.com/doc/357554/hiku59


3.4 食谱标签文档

https://www.aligenie.com/doc/357554/xum3re