百度小程序-接入自然搜索-API提交Url-c#开发

开发百度小程序后,接下来,人们最想做的是让百度更多的录入自家内容。因为小程序资源被索引后,才可能在搜索结果中展现。

百度也提供了小程序的自然搜索提交入口。一共有两种方式:

第一种是用已有的H5网站资源替换,这种的录入速度应该非常快速,百度小程序平台将优先对 H5站点下的 TOP 流量 URL进行替换处理。

第二种提交新资源,接下来我们主要讲这第二种情况。

-----------------------------------------------------------------------------------------------------------

提交新资源又分为 “天级收录”和“周级收录”以及“自动同步”。资源提交的内容为小程序页面的path路径+参数。官网地址入口 )天级提交一般48小时内有反馈,周级提交需要周级处理后反馈。

“天级收录”和“周级收录” 都又2种提交资源的方式,第一种是txt资源上传(Sitemap),整理小程序页面的所有Path路径+参数,每行一条记录。第二种方式为API提交。(官网教程入口

根据官方提供的API文档说明,我们会知道如下几点:

第一:api的请求接口地址,用Post提交

https://openapi.baidu.com/rest/2.0/smartapp/access/submitsitemap/api

第二、参数说明

参数名 类型 是否必须 描述 示例
access_token string 权限校验Token,获取方式见开发者服务权限说明  
type int 通过TYPE字段选择上传接口。
· 0:周级提交,一周左右生效;
· 1:天级提交,2~3天生效;
· 2:小时级提交,1小时内生效
0
url_list string 小程序path集合,多个path用逗号分隔。
· 天级提交配额根据提交活跃度和资源质量进行调节,具体以平台显示为准;
· 周级提交配额每日上限为5W条,每次提交上限为3000条。
/pages/index1?id=1,/pages/index2

第三,返回结果说明:

1、正确的结果:

{
  "errno": 0,
  "msg": "success"
}

2、若出现错误,则会返回错误提示:错误码说明:

错误码 错误描述
0 成功
-1024 业务异常
500 对不起,服务器出错了,请稍候再试
2002 小程序不存在/选择的收录级别不合法/url数量不合法
30001 参数有误
30013 数量超上限
47005 文件上传失败
60005 尚未绑定熊掌ID,请先绑定熊掌ID

官方提供几种语言的demo代码,比如 java,python,php,接下来我用c#代码实现相关的功能:

第1步:是获取access_token值:

 string App_Key = "GUsp9GbxpfZNpnp1DjR1GrG2zGwGLhq2";

            string App_Secret = "百度小程序的app_secret值";

            string url = "https://openapi.baidu.com/oauth/2.0/token";
            string param = $"grant_type=client_credentials&client_id={App_Key}&client_secret={App_Secret}&scope=smartapp_snsapi_base";
            string ret = Utils.HttpPost(url, param);
            this.lblAccessToken.Text = ret;
Utils.HttpPost里的方法如下:
  /// <summary>
        /// HTTP POST方式请求数据
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="param">POST的数据</param>
        /// <returns></returns>
        public static string HttpPost(string url, string param)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.Accept = "*/*";
            request.Timeout = 15000;
            request.AllowAutoRedirect = false;

            StreamWriter requestStream = null;
            WebResponse response = null;
            string responseStr = null;

            try
            {
                requestStream = new StreamWriter(request.GetRequestStream());
                requestStream.Write(param);
                requestStream.Close();

                response = request.GetResponse();
                if (response != null)
                {
                    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                    responseStr = reader.ReadToEnd();
                    reader.Close();
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                request = null;
                requestStream = null;
                response = null;
            }

            return responseStr;
        }

access_token获取成功后,开始我们的url资源提交了。根据自家小程序页面path以及参数,提交相应的资源。多条记录用逗号隔开。

        /// <summary>
        /// 每次发一批文章给百度小程序。
        /// </summary>
        /// <param name="alist">alist的条数不要超过每次的上限。</param>
        /// <returns></returns>
        private string SendToBaiDu(int type, List<Model.article_id> alist)
        {
            string ret = "";
            string ACCESS_TOKEN = "24.9ebc57a8f3b00375b8bb0ee59892ce52.2592000.1584192924.282335-18403980";
            string postUrl = "https://openapi.baidu.com/rest/2.0/smartapp/access/submitsitemap/api";

            string param = "access_token=" + ACCESS_TOKEN;
            StringBuilder sb = new StringBuilder("");
            sb.Append("&type="+ type);
            sb.Append("&url_list=");
            for (int i = 0; i < alist.Count(); i++)
            {
                if (i != alist.Count() - 1)
                {
                    sb.Append("pages/detail/detail?query=" + alist[i].id + ",");
                }
                else
                {
                    sb.Append("pages/detail/detail?query=" + alist[i].id);
                }

            }

            param += sb.ToString();
              ret = Utils.HttpPost(postUrl, param);

            return ret;
        }

到此就成功提交了,但是要记得每天的上限以及每次提交记录的上线。

花絮:

在开发调试过程中,遇到一个非常奇怪的现象,不管用什么方式提交资源,百度接口总会返回“47005文件上传失败”。一直以为是自己的代码问题,排查了好久没有解决。决定是官方论坛发帖求助,(入口),结果令人惊奇的发现,这个根据就不是我代码的bug,而是百度官方的接口返回有问题,等了大天,百度官方才修复了这个bug 。 所以,调用第3方接口,遇到诡异现象,有可能真的是第3方的问题。

 

原文地址:https://www.cnblogs.com/puzi0315/p/12310940.html

时间: 2024-08-09 08:10:40

百度小程序-接入自然搜索-API提交Url-c#开发的相关文章

加一度解析百度搜索困局,小程序将开启搜索流量新机遇

近期,不知大家在使用百度APP时,有没有发现其搜索结果内智能小程序的出现增多了? 这实际上是百度针对智能小程序开发者在搜索流量上开放的一个重要动作,这也意味着在百度的搜索场景中,智能小程序可以获得更多的流量. 从开放生态的建立,到面向开发者推出"布道师计划",再到如今全面开放搜索流量,百度正在通过更多维度的生态构建来为智能小程序行业带来更多可能.搜索+全域流量的释放小程序,虽然名字带个小字,却引来了各路豪杰集聚. 除最早入局的微信以外,百度.支付宝.QQ以及今日头条,国内互联网主流玩家

百度智能小程序_百度小程序怎么申请?开发?

申请百度智能小程序帐号 使用百度帐号(没有百度帐号会自动创建)登录百度 智能小程序开发者后台. 登录成功后,选择类型.填写信息并提交相应的资料. 提交完资料,等待审核.审核通过后,就可以拥有自己的智能小程序帐号. 审核通过后,登录 智能小程序开发者后台 . 打开"智能小程序首页"-"设置"-"开发设置", 查看百度小程序的 AppID . 安装百度开发者工具 下载百度开发者工具. Windows 内测下载地址 | Mac 内测下载地址. 你的第一

百度小程序性能优化

引子: 一个指标引发的血案 https://www.cnblogs.com/Sherlock09/p/11726885.html 性能优化 进入移动互联网时代,传统Web开发技术(HTML,CSS,JavaScript)风光不再,客户端技术(iOS以及Android)依靠良好的体验重新崛起.但是客户端技术的开发效率始终无法与Web技术抗衡,同时会受到诸多平台层面的限制.在这一大背景下,小程序独特的架构诞生了,它将Web前端技术与传统的客户端技术结合在一起,其目的是在开发效率上超过传统的客户端技术

百度智能小程序_百度小程序注册指导文档

百度智能小程序注册 注册登录百度账号 注册地址:点击注册 登录地址:点击登录 使用百度App扫码登录 手机短信验证登录 百度账号密码登录 选择主体类型 主体类型:媒体.企业.政府.其他组织五种主体类型.主体类型说明: 媒体:报纸.杂志.电视.电台.通讯社.其他等: 企业:企业.个体工商户.企业相关品牌: 政府:国内.各级.各类政府机构.事业单位.具有行政职能的社会组织等: 其他组织:公共场馆.公益机构.学校.社团.民间组织等机构团体申请: 主体信息登记 不同类型的开发者所需的登记信息:包括主体信

【百度小程序】细数百度小程序踩的坑

最近接触百度小程序挺多,开发了几个产品,都快被百度的小程序折磨死.真的是不想吐槽了,接下来我就讲讲我遇到的坑与一些经验. 1. s-for 这个for循环的写法为 s-for='arr' 或者 s-for = 'item,index in arr' .这些到没什么,主要是s-for不能循环常数...这让我从微信小程序转到百度小程序不太习惯...官方回应说什么底层diff差异哦,后面会修复.不知道现在修复好没. 2. 自定义组件之命名与路径 引用组件的时候,在json文件中,usingCompon

百度小程序button去掉默认边框

百度小程序button去掉默认边框: button::after{ border:none; } 原文地址:https://www.cnblogs.com/huanghuali/p/10569760.html

百度小程序坑坑坑

吐槽:被小程序坑死啊 问题:在循环中,根据条件加载不同的template模板出现问题. <block s-for="news, index in item.news_data"> <!--begin template is 中第一次比较,满足就会出现问题 --> <block s-if="item.type==1"> <template is="newsText" data="{{{...ite

【免费下载】全套最新 017微信小程序 视频教程+教学资料+学习课件+源代码+软件开发工具

017微信小程序视频教程 网盘地址: 链接:https://pan.baidu.com/s/1VV5KVxd7\_LLOMSM8BNuFqg 提取码:6d4k 加公众号 获取更多新教程 教程目录大纲 ./017微信小程序 ├── 视频 │?? ├── 01. _微信小程序_入门介绍.avi │?? ├── 02. _微信小程序_相关资料.avi │?? ├── 03. _微信小程序_特点介绍.avi │?? ├── 04. _微信小程序_移动端适配相关内容.avi │?? ├── 05. _微信

任务2--安装Intellj IDEA,编写一个简易四则运算小程序,并将代码提交到GitHub

我的GitHub地址为:https://github.com/Orangeyc123 首先呢,我并没有完整的完成任务,我觉得主要问题有以下几个 1.由于之前都没有听说过intellj IDEA这个软件,安装的时候就碰到了好多问题.对于我这个人来说呢,有一点很大的毛病就是对于从来没见过不知道的东西有一种畏惧心理.怕自己装的不对,怕自己有哪一个步骤和别人不一样而产生不同的结果. 比如 之前一直没有遇到过这种情况,显然有些不知所措,不过还好,问了学长以后我想以后出现这种问题应该so easy. 下载并