123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- package com.edufound.reader.botsdk;
- import com.baidu.duer.bot.event.payload.LinkClickedEventPayload;
- import com.baidu.duer.botsdk.BotIntent;
- import com.baidu.duer.botsdk.BotSdk;
- import com.baidu.duer.botsdk.IAccountChargeMsgListener;
- import com.edufound.reader.bean.ChannelCodeEnum;
- import com.edufound.reader.util.Consts;
- import java.util.ArrayList;
- import java.util.List;
- public class BotRegisterListener {
- private static List<IAccountChargeMsgListener> mIAccountListener = new ArrayList<>();
- public static void registerListener(IBotIntentCallback iBotIntentCallback, IAccountChargeMsgListener iAccountChargeMsgListener) {
- if (Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
- //如果是百度。就注册百度的接口
- BotMessageListener.getInstance().addCallback(iBotIntentCallback);
- mIAccountListener.add(iAccountChargeMsgListener);
- BotSdk.getInstance().setAccountAndChargeListener(mIAccountListener.get(mIAccountListener.size() - 1));
- }
- }
- public static void removeListener(IBotIntentCallback iBotIntentCallback) {
- if (Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
- //如果是百度。就删除百度
- BotMessageListener.getInstance().removeCallback(iBotIntentCallback);
- if (mIAccountListener.size() > 0) {
- mIAccountListener.remove(mIAccountListener.get(mIAccountListener.size() - 1));
- if (mIAccountListener.size() > 0) {
- BotSdk.getInstance().setAccountAndChargeListener(mIAccountListener.get(mIAccountListener.size() - 1));
- } else {
- BotSdk.getInstance().setAccountAndChargeListener(null);
- }
- }
- }
- }
- public static void BaiDuLogin() {
- LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
- linkClickedEventPayload.url = mockGrantPhoneNumberUrl();
- BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);
- }
- public static void getBaiDuVipInfo() {
- LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
- linkClickedEventPayload.url = String.format("dueros://%s/getVipInfo" + "?channel_type=bot_child&from=wutong|show|yifang|ldpy", BotConstants.BOTID);
- BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);
- }
- /**
- * 调用百度VIP收银台
- */
- public static void payBaiDuVip() {
- //dueros://{bot_id}/buyXiaoduVIP?channel_type={channel_type}&from={from},
- Consts.setIsNeedLogin(true);
- LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
- linkClickedEventPayload.url = "dueros://" + BotConstants.BOTID + "/buyXiaoduVIP";
- BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);
- }
- /**
- * 上报使用了资源
- */
- public static void uploadUsage(String privilege, String resId, String resType, String usertype) {
- LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
- linkClickedEventPayload.url = ("dueros://" + BotConstants.BOTID + "/upload?type=usage&isPrivilege=" + privilege + "&resourceId=" + resId + "&resourceType=" + resType + "&userType=" + usertype + "");
- BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);
- /**
- * 会员录音上报 BotRegisterListener.uploadUsage("1", mReadId, "record", "vip");
- * */
- /**
- * 免费视频上报 BotRegisterListener.uploadUsage("0", readid, "video", "unpurchased");
- * */
- }
- /**
- * 解锁资源
- */
- public static void uploadUnlock(String resId, String resType, String usertype) {
- LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
- linkClickedEventPayload.url = ("dueros://" + BotConstants.BOTID + "/upload?type=unlock&isPrivilege=1&resourceId=" + resId + "&resourceType=" + resType + "&userType=" + usertype + "");
- BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);
- }
- /**
- * 构造手机号一键授权的url
- *
- * @return
- */
- public static String mockGrantPhoneNumberUrl() {
- String url = "http://%s/path?openbot=true&request={\\\"query\\\":{\\\"type\\\":\\\"TEXT\\\","
- + "\\\"original\\\":\\\"手机号授权\\\",\\\"rewritten\\\":\\\"手机号授权\\\"},"
- + "\\\"dialogState\\\":\\\"COMPLETED\\\","
- + "\\\"intents\\\":[{\\\"name\\\":\\\"AskForPermissionsConsentRequired\\\",\\\"score\\\":100,"
- + "\\\"confirmationStatus\\\":\\\"NONE\\\","
- + "\\\"slots\\\":{\\\"permission\\\":{\\\"name\\\":\\\"permission\\\","
- + "\\\"value\\\":\\\"READ::USER:PHONE\\\",\\\"values\\\":[\\\"READ::USER:PHONE\\\"],"
- + "\\\"score\\\":0,\\\"confirmationStatus\\\":\\\"NONE\\\"}}}]}";
- return String.format(url, BotConstants.BOTID);
- }
- public static boolean isNoLoginIntent(BotIntent intent) {
- if (!intent.name.equals("NotifyGrantStatus")) {
- return true;
- }
- return false;
- }
- // /**
- // * 产生一个固定的金额信息
- // *
- // * @return amountinfo
- // */
- // public static AmountInfo mockAmountInfo(String price) {
- // AmountInfo amountInfo = new AmountInfo();
- // amountInfo.amount = price;
- // amountInfo.currencyCode = "CNY";
- // return amountInfo;
- // }
- //
- // /**
- // * 构造卖家订单信息
- // *
- // * @return
- // */
- // public static SellerOrderStructure mockSellerOlrderStructure(String productId, String description, String sellerOrderId, String productName) {
- // SellerOrderStructure sellerOrderStructure = new SellerOrderStructure();
- //// sellerOrderStructure.productId = "111" + System.currentTimeMillis();
- //// sellerOrderStructure.description = "测试商品介绍";
- //// sellerOrderStructure.sellerOrderId = "222" + System.currentTimeMillis();
- //// sellerOrderStructure.productName = "测试商品名称";
- // sellerOrderStructure.productId = productId;
- // sellerOrderStructure.description = description;
- // sellerOrderStructure.sellerOrderId = sellerOrderId;
- // sellerOrderStructure.productName = productName;
- // return sellerOrderStructure;
- // }
- //
- // public static void requestBuyProduct() {
- // RequestBotSdkUtil.requestBuyProduct("123123123123", "191025095313376709");
- // }
- }
|