小程序刚刚出来不就就火爆了整个前端圈, 咱也不干落后的研究了一下, 网上找了个”知乎日报API接口“做了个小项目练手, 基本上还算完整的实现了整个项目, 欢迎 star fork,由于小程序对HTML的不支持, 详情页做了些简单的过滤, 基本上看着还行。 某些网络图片无法显示. 貌似是小程序的BUG。由于小程序的局限性, 很多效果还是无法实现的. 不知道公测是否会开放。由于没有内测资格, 只能 clone 到本地进行体验了,项目持续开发优化。 效果图源码下载地址: 百度网盘:链接: 密码:kp24 目录结构├── app.js ├── app.json ├── app.wxss ├── config.js ├── pages │ ├── detail │ ├── index │ └── themes ├── static │ ├── 001.jpg │ ├── arrowright.png │ ├── comments.png │ ├── loading.gif │ ├── loading.svg │ ├── pengyou.png │ ├── qq.png │ ├── share.png │ ├── wechat.png │ ├── wechatHL.png │ ├── weibo.png │ ├── weixin.png │ └── zan.png ├── template │ └── itemlist.wxml └── utils └── util.js API 说明知乎日报的消息以 JSON 格式输出 网址中 api 后数字代表 API 版本,过高或过低均会得到错误信息 较老的接口(启动界面图像获取,最新消息,过往消息)中将数字 2 替换为 1.2 获得效果相同,替换为 1.1 获得的是老版本 API 输出的 JSON 格式(替换为更低,如 1.0,或更高,如 1.3,将会获得错误消息) 以下所有 API 使用的 HTTP Method 均为 GET API 分析1. 启动界面图像获取 URL: http://news-at.zhihu.com/api/4/start-image/1080*1776 start-image 后为图像分辨率,接受任意的 number*number 格式, number 为任意非负整数,返回值均相同。 响应实例: 分析: text : 供显示的图片版权信息 img : 图像的 URL 2. 软件版本查询 Android: http://news-at.zhihu.com/api/4/version/android/2.3.0 iOS: http://news-at.zhihu.com/api/4/version/ios/2.3.0 URL 最后部分的数字代表所安装『知乎日报』的版本 响应实例: 软件为最新版本时 软件为较老版本时 分析: status : 0 代表软件为最新版本,1 代表软件需要升级 latest : 软件最新版本的版本号(数字的第二段会比最新的版本号低 1) msg : 仅出现在软件需要升级的情形下,提示用户升级软件的对话框中显示的消息 3. 最新消息 URL: http://news-at.zhihu.com/api/4/news/latest 响应实例: 分析: date : 日期 stories : 当日新闻 title : 新闻标题 images : 图像地址(官方 API 使用数组形式。目前暂未有使用多张图片的情形出现,曾见无 images 属性的情况,请在使用中注意 ) ga_prefix : 供 Google Analytics 使用 type : 作用未知 id : url 与 share_url 中最后的数字(应为内容的 id) multipic : 消息是否包含多张图片(仅出现在包含多图的新闻中) top_stories : 界面顶部 ViewPager 滚动显示的显示内容(子项格式同上)(请注意区分此处的 image 属性与 stories 中的 images 属性) 4. 消息内容获取与离线下载 URL: http://news-at.zhihu.com/api/4/news/3892357 使用在 最新消息 中获得的 id,拼接在 http://news-at.zhihu.com/api/4/news/ 后,得到对应消息 JSON 格式的内容 响应实例: 分析: body : HTML 格式的新闻 image-source : 图片的内容提供方。为了避免被起诉非法使用图片,在显示图片时最好附上其版权信息。 title : 新闻标题 image : 获得的图片同 最新消息 获得的图片分辨率不同。这里获得的是在文章浏览界面中使用的大图。 share_url : 供在线查看内容与分享至 SNS 用的 URL js : 供手机端的 WebView(UIWebView) 使用 recommenders : 这篇文章的推荐者 ga_prefix : 供 Google Analytics 使用 section : 栏目的信息 thumbnail : 栏目的缩略图 id : 该栏目的 id name : 该栏目的名称 type : 新闻的类型 id : 新闻的 id css : 供手机端的 WebView(UIWebView) 使用 可知,知乎日报的文章浏览界面利用 WebView(UIWebView) 实现 特别注意 在较为特殊的情况下,知乎日报可能将某个主题日报的站外文章推送至知乎日报首页。 响应实例: 此时返回的 JSON 数据缺少 body,image-source,image,js 属性。多出 theme_name,editor_name,theme_id 三个属性。type 由 0 变为 1。 5. 过往消息 URL: http://news.at.zhihu.com/api/4/news/before/20131119 若果需要查询 11 月 18 日的消息,before 后的数字应为 20131119 知乎日报的生日为 2013 年 5 月 19 日,若 before 后数字小于 20130520 ,只会接收到空消息 输入的今日之后的日期仍然获得今日内容,但是格式不同于最新消息的 JSON 格式 响应实例: 格式与前同,恕不再赘述 6. 新闻额外信息 URL: {id} 输入新闻的ID,获取对应新闻的额外信息,如评论数量,所获的『赞』的数量。 响应实例: long_comments : 长评论总数 popularity : 点赞总数 short_comments : 短评论总数 comments : 评论总数 7. 新闻对应长评论查看 URL: http://news-at.zhihu.com/api/4/story/4232852/long-comments 使用在 最新消息 中获得的 id,在 {id}/long-comments 中将 id 替换为对应的 id,得到长评论 JSON 格式的内容 响应实例: 分析: comments : 长评论列表,形式为数组(请注意,其长度可能为 0) author : 评论作者 id : 评论者的唯一标识符 content : 评论的内容 likes : 评论所获『赞』的数量 time : 评论时间 avatar : 用户头像图片的地址 8. 新闻对应短评论查看 URL: http://news-at.zhihu.com/api/4/story/4232852/short-comments 使用在 最新消息 中获得的 id,在 {id}/short-comments 中将 id 替换为对应的 id,得到短评论 JSON 格式的内容 响应实例: 格式与前同,恕不再赘述 9. 主题日报列表查看 URL: http://news-at.zhihu.com/api/4/themes 响应实例: limit : 返回数目之限制(仅为猜测) subscribed : 已订阅条目 others : 其他条目 color : 颜色,作用未知 thumbnail : 供显示的图片地址 description : 主题日报的介绍 id : 该主题日报的编号 name : 供显示的主题日报名称 10. 主题日报内容查看 URL: http://news-at.zhihu.com/api/4/theme/11 使用在 主题日报列表查看 中获得需要查看的主题日报的 id,拼接在 http://news-at.zhihu.com/api/4/theme/ 后,得到对应主题日报 JSON 格式的内容 响应实例: stories : 该主题日报中的文章列表 images : 图像地址(其类型为数组。请留意在代码中处理无该属性与数组长度为 0 的情况) type : 类型,作用未知 title : 消息的标题 description : 该主题日报的介绍 background : 该主题日报的背景图片(大图) color : 颜色,作用未知 name : 该主题日报的名称 image : 背景图片的小图版本 editors : 该主题日报的编辑(『用户推荐日报』中此项的指是一个空数组,在 App 中的主编栏显示为『许多人』,点击后访问该主题日报的介绍页面,请留意) url : 主编的知乎用户主页 bio : 主编的个人简介 id : 数据库中的唯一表示符 avatar : 主编的头像 name : 主编的姓名 image_source : 图像的版权信息 11. 热门消息 请注意! 此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。 URL: http://news-at.zhihu.com/api/3/news/hot 响应实例: 大体同前面介绍的 API 类似,唯一需要注意的是:欲获得图片地址,不再使用 image 而是 thumbnail 属性 url 属性可直接使用。请注意,url 中的 api 属性为 2,是较老版本。 12. 软件推广 请注意! 此 API 已无法访问,但是其内容曾出现于『知乎日报』 App 中。 Android: http://news-at.zhihu.com/api/3/promotion/android iOS: http://news-at.zhihu.com/api/3/promotion/ios 13. 栏目总览 请注意! 此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。 URL: http://news-at.zhihu.com/api/3/sections 响应实例: 同样,注意使用 thumbnail 获取图像的地址 14. 栏目具体消息查看 请注意! 此 API 仍可访问,但是其内容未出现在最新的『知乎日报』 App 中。 URL: http://news-at.zhihu.com/api/3/section/1 URL 最后的数字见『栏目总览』中相应栏目的 id 属性 响应实例: 往前:http://news-at.zhihu.com/api/3/section/1/before/1398780001 在 URL 最后加上一个时间戳,时间戳详见 JSON 数据末端的 timestamp 属性 15. 查看新闻的推荐者 URL: {id}/recommenders 将新闻id填入到#{id}的位置, 如 http://news-at.zhihu.com/api/4/story/7101963/recommenders 响应实例 16. 获取某个专栏之前的新闻 URL: {section id}/before/#{timestamp} 将专栏id填入到 #{section id}, 将时间戳填入到#{timestamp},如 http://news-at.zhihu.com/api/4/section/34/before/1465772400 注:新闻id要是属于该专栏,否则,返回结果为空 响应实例: 17. 查看editor的主页 iOS: {id}/profile-page/ios Android: {id}/profile-page/android 如 http://news-at.zhihu.com/api/4/editor/79/profile-page/ios github:https://github.com/LiuCaiHe/wechat-app-sample (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|