【FAQ】百度应用开发平台开发过程及应用审核常见问题
百度应用开放平台吧
全部回复
仅看楼主
level 9
百度应用 楼主
一.开发过程:
1 关于应用预览
Q:为什么我的应用在预览应用独立页效果时能够高度自适应,但在预览搜索结果页效果时却一直无法高度自适应?
A:目前只能通过Firefox浏览器对搜索结果页效果进行预览时才能高度自适应,我们会在下个版本中寻求解决办法。
Q:我在测试搜索结果页的预览效果时发现页面出现JS错误,提示http://app.baidu.com/static/appstore/html/bdjs_callback.html没有访问权限,经查是由于加载了<script src="http://app.baidu.com/static/appstore/scripts/bdjs_client-1.0.js"></script>所致,但不影响功能正常使用。不知该问题如何解决?是否影响审核?
A:预览搜索结果页面效果时请使用Firefox,非Firefox浏览器在做搜索结果页效果预览时会出现JS报错、高度无法实现自适应等问题,这个问题我们暂时还没找到很完美的解决办法,不过后面肯定会改进的。
2 关于关键词
Q:对于应用的关键词的复合搜索是如何提供的?我们该如何使用?比如:关键词是吃,次关键词是面条、米饭、馒头,当复合关键词是“吃”匹配“米饭”的时候显示的应用和“吃”匹配“面条”结果不一样,但同属一个应用。现在我们有一个应用,主关键词确定,次关键词有很多,大概几百个,如何实现?
A:目前平台不支持所谓的复合关键词,如果“吃米饭”和“吃面条”都应该匹配到您的应用,那可以直接将“吃米饭”、“吃面条”都配到您的应用关键词中,当用户通过“吃米饭”搜索到您的应用并点击使用后,百度会将“吃米饭”这个词通过keyword参数传递给普通IFrame应用,或通过bd_sig_keyword参数传递给BDML或BD IFrame应用,您的应用在接收到请求后再根据keyword或bd_sig_keyword关键词进行二次检索并返回相应的页面页面,具体效果可以参考线上的pptv应用。需要注意的是:通过keyword或bd_sig_keyword参数传递的关键词正常情况下是通过UTF-8编码的,但因为用户可以直接通过浏览器地址栏输入URL方式来访问,此时的URL参数编码方式是由浏览器决定的,因此第三方务必做好字符编码判断。
3 关于版本更新问题
Q:我的应用已经审核通过,现在想要修改下应用程序的内容,请问百度的平台对于这类版本更新问题是如何处理的?
A:如果您的应用是flash widget应用或bwa widget应用,您可以直接重新上传相应的flash文件或bwa文件,然后将应用重新提交审核,在应用被复审通过之前,用户看到的应用仍然是旧版本的应用,只有复审通过之后,用户看到的才是新版本的应用,但开发者可以通过预览应用的方式查看尚未复审通过的新版本应用。应用的其他信息更新,如应用名称、简介、详细描述、图片等信息的更新,也同样遵循该机制。但对于站内web应用,开发者更新了部署在自己服务器上的应用程序代码,或者修改应用的回调地址、默认加载地址等参数,都是直接生效到线上,因此,开发者在进行站内web应用的版本升级时务必谨慎,否则一旦出现问题将直接影响您的应用在百度平台上的排序甚至是被直接关闭下线。
Q:我修改了应用信息后点击了保存按钮,为什么在前端页面上仍然没有看到修改后的内容?
A:修改应用信息并保存只是将您的修改保存了下来,要让内容生效,还需要重新提交审核并被管理员复审通过才行。
4 关于平台与第三方应用的数据交互
Q:我希望开发一个有用户互动的应用,需要获取一些用户信息和用户好友关系等数据,应该怎么做?
A:请参考《百度应用开放平台Open API文档》,如果您使用PHP开发应用,那么可以直接下载百度官方提供的SDK来用,否则需要开发者按照Open API文档中的接口描述,使用自己熟悉的语言实现一个定制的SDK。

2011年06月23日 06点06分 1
level 9
百度应用 楼主

Q:我的应用是用ASP+JS,想了解一下如何获取向第三方服务器传递的bd_sig_userbd_sig_session_key,bd_sig_expires参数, 是通过COOKIE吗?
A:要获取bd_sig_user等用户相关参数,需要首先获得用户对应用的授权,然后在用户登录的情况下,用户每次刷新平台的页面,平台都会将参数传递给应用(具体参考《数据通信机制》中“用户登录、授权处理”一节),对于Iframe模式的应用,用户在未刷新整个浏览器页面的情况下点击应用内部链接等导致的应用页面刷新访问,请求都不是从平台经过,因此不会有这些参数传递给应用,所以应用应该在每次接收到平台传递的参数时将其设置到本域的cookie中,以便在后续用户访问时可以从中读到之前平台传递过来的参数,具体处理方式可以参考百度官方提供的PHP版SDK源码。
Q:平台传递给第三方应用的bd_sig_session_key的过期了怎么办?
A:平台传递给第三方应用的bd_sig_session_key的过期时间由bd_sig_expires参数指定,为0表示永不过期(但不能完全保证),一旦出现session key失效或过期等问题,第三方应用可以通过引导用户刷新整个应用画布页(提示用户刷新或应用自动刷新都可以)来重新获取一个有效的session key。
5 关于监控相关的问题
Q:我在服务器已经按照文档的要求部署了monitor文件,文件内容也与文档所要求的相同,服务也是能正常提供的,压力并不大,但还是不停地收到来自百度应用开放平台的监控报警短信,提示我的应用出现了异常,这是怎么回事?
A:开发者接收到来自百度应用开放平台的监控报警短信,一般有以下几种可能:1.服务确实出现了问题,如服务器压力过大导致无法及时响应监控请求、网络故障导致监控系统连接第三方服务超时、宕机等请求导致监控系统无法连接上第三方服务,此时我们一般会发出如下格式的报警短信:
百度应用服务异常,请及时处理,错误信息[抓取内容无效]。appname[号码吉凶查询],appid[101469],url[http://jixiong.showji.com/BaiduApp.aspx/monitor.html]2.服务端没有部署monitor.html文件或monitor.html文件内容不是<!--STATUS OK-->,或者在应用的响应页面上没有添加<script src=”http://app.baidu.com/app/monitor?apikey=xxx”></script>这样的代码,其中xxx表示该平台分配给当前应用的应用公钥。
3.有些开发者部署的monitor.html文件内容却是是<!--STATUS OK-->,但由于是通过windows下的一些编辑器输入的文字,导致文件开头多了BOM字符(3个字节),开发者可以看下自己的文件的大小,如果是19个字节,那肯定是多了BOM字符,
正确的
应该是16个字节
4.应用的Canvas Callback URL填写不正确。有些开发者会将Canvas Callback URL设置为一个具体页面的地址,如http://your.website.com/baidu/xx.php,尤其是当这个应用只有一个页面的时候。此时,平台就会以http://your.website.com/baidu/xx.php/monitor.html作为应用的服务端监控文件地址,很多开发者没有注意到这点,也没有在webserver上配置相应的rewrite规则,从而导致返回的响应内容并不是开发者部署的monitor.html文件的内容。正确的做法应该是以http://your.website.com/baidu作为应用的Canvas Callback URL,然后在搜索结果页加载地址和应用独立页加载地址2个填写项中指定默认加载的页面的具体页面文件地址。
5.很多webserver在处理http://your.website.com/baidu/monitor.html这样的请求时会通过302跳转的方式将其重定向到另一个静态文件地址上,以期返回<!--STATUS OK-->内容,而当http响应包的状态码不是200状态码时,平台的监控系统会将其视为一个无效的响应。

2011年06月23日 06点06分 2
level 5
我来顶一下,
这些个内容我花了半个小时仔细看过了,大部分都是我经历过的!但是仍感觉有点空!说大道理的样子,不知道其它盆友有没有此感受!
2011年11月15日 07点11分 5
1