我总是喜欢在写东西之前唠唠嗑,按照惯例会在博文的开篇写这么一段“写在前面的话”,这次却为了这个唠嗑单独开了一篇文,大概预想着要胡说八道的话有点多。

前段时间突然对小程序来了兴趣,说句实话,我都忘记了准确的导火线,大概是一直想做点什么个人的小作品,结果又因为贫穷限制了我买服务器。索性这个世界上有种东西叫“第三方API”,我买不起,我用别人的还不行吗?这个问题解决了,还有个问题没解决,那就是我这个人既不会iOS也不会Android,总不能用第三方API写Web吧,那不是也得要个人服务器,又回到最初的起点。

于是用三方API结合微信小程序就很有意思了,适配移动端也容易,体积小,开发起来成本也远远更低,加上现在微信大大提高了小程序在其生态的入口和地位,说不定掌握它的开发也是未来升职加薪的助力。说干就干,索性就去慕课网买了开发教学视频《微信小程序入门与实战》,149,也还好,不算太贵。累计花了约30h,课程也大概上了近80%,顺便花了6h用gank.io的公开API撸了一个简单的刷刷妹纸图片的小程序(目前并没有上线,因为功能太简单了不想提交上线,后续再完善一部分再提交吧= =),接近过年,无心再码点什么了,索性准备来写写小程序开发的一些东西。


所以接下来的章节,会唠唠微信小程序的一些基本开发,有兴趣的客官可以继续该系列往下读,应该也不会写得太细枝末节,主要还是给自己的知识留下记录。如果想做小程序开发,希望学习效果更直接一些,建议就直接花钱买那个课程,链接在上面已经给出了,我也不是什么托儿,只是亲测教程质量OK,这个钱花得妥。

 


另外必须要吐槽的是,在学得七七八八准备自己写点东西练手的时候,找API来玩儿那可太纠结了,一开始想借用微博的API,在微信里刷微博,大概和在微信里用支付宝差不多奇怪的需求了,结果发现完全没办法,两个原因:
  • OAuth2的授权需要到授权页面,而微信小程序里是不支持直接的网页url跳转的
  • 微博的应用审核严格,同时开发API没办法获取到你和你关注者时间线上最新的微博内容

第一个问题勉强用极其曲折和麻烦的方式解决了,想着让用户关注我的公众号,然后发送一个关键字后我推送授权的链接,用户在微信里是可以用网页的,在公众号跳转的网页授权完成后,再复制回调页面的地址中的code授权码,输入小程序里使用。哇,这个体验,作为开发者我自己都觉得恶心,想着只是做着玩儿甚至可能只是我自己用的一个小程序,也就无所谓了,但是第二个确实就没办法了。

微博的三方授权都是要先建立应用的,应用的分类里你是实在找不出小程序应该归为哪类,移动端?网页开发?尝试着随便选一个,结果应用要审核公用的话,前者需要提交移动端应用的下载地址,这个肯定不行了;后者要填写网页使用的地址,小程序不支持网页啊,这我可咋弄,这就差不多可以gg了。之所以我说差不多,是因为想着实在不行我就自己用行了吧,因为开发者在应用审核前只能使用个人的授权,然后接下来上面提到的第二个原因直接拍死了后面的开发考虑。

看下微博给的API,好像完全没什么问题:
 
看下实际上的详细说明,以statuses/home_timeline这个最最核心重要的接口为例:
 
什么意思呢,意思是,你如果授权使用这个第三方开发应用,那么接口返回的微博只能返回你本人的,其他人的不会返回,感情是我调用这个接口只能返回我自己发出的微博,我关注者的微博统统不给我,我摔,我要这接口有何用???而且其他相关的接口说明全是这样,我要这接口有!何!用!那为什么微博还是尚存有第三方客户端?看到最后那行了吗,使用官方移动SDK,返回30%非授权用户的微博,也就是说,你如果用的微博客户端是第三方开发人员的,你实际上看到的微博大概只有真实微博数量的30%,这时候不禁要给出一个透露着MMP的微笑。所以想做微博第三方开发的小伙伴,你做移动端iOS或者Android还勉强能读到部分数据,其他的基本还是忘了它吧。可以说是对开发者很不友好了,没办法,依托别人的API就是这样,寄人篱下说不给你了就不给你了,惨。

于是我又想着折腾instgram的API,然而审核更严格,好像只提供了移动端应用的开发模式,要求审核提交应用app,我小程序我提交啥app,微信么,而且FQ也麻烦,直接gg。最后在知乎《想写个 App 练手,有什么有趣的 API 接口推荐吗?》找到了gank.io干货集中营的公开免费API,就练手做了个看妹纸图片的简单小程序。后来又细细看了下知乎答案,发现和风天气的API也是免费的,准备年后尝试撸一个天气相关的小程序;博客园的API也提交了申请,审核通过的话应该会再认真写一个博客园的小程序,番茄土豆的API也不错,好像只需要密钥就可以使用API。

想玩儿的东西还真不少:
  • 和风天气API
  • 博客园API
  • 番茄土豆API

上面大概就是这段时间来我的一些经历以及我很想吐槽的一些东西了,实际上在这个学习阶段还接触了一些不太熟悉的概念,接下来应该还会探究一下在写一些基本的知识概念的博文,比如:
  • Oauth2
  • token
  • curl
  • 接口设计
  • ...

年后还打算把家里空闲的电脑装成Linux开始学习,另外索性可以用花生壳做内网映射做成个人的服务器,然后就可以自己写后端的东西了,目前想结合爬虫做点什么,比如可以先尝试根据知乎上某个问题(主要是url分析和如何防止反爬)去爬知乎上各问题下的大美女图片( +v+ )然后还想尝试爬租房信息再结合小程序做一个方便搜索租房房源的东西,哇,想做的事情可太多了,年后还要开始从头学框架等等等等,哎,有趣有趣,然而时不待我,时不待我啊!!!

列个清单:
  • Linux
  • Java爬虫(Python虽好从头学那又得多少时间啊)
  • 爬美女图
  • 爬房源信息另做小程序

嗯,虽然不一定都会实际去完成上面的东西... hhhhh

嗯,感觉和2018年的年目标完全偏离了,emmm...

不小心bb了这么多... 诶,打住打住...

微信小程序开发 [00] 写在前面的话,疯狂唠唠的更多相关文章

  1. 微信小程序开发 [07] 写在后面的话

    写在后面的话基本算是吐槽了,在学完小程序的课程之后,我用博客园的api,写了个闪存的小程序,本来兴致勃勃甚至这篇是准备写"我的第一个小程序发布啦",然而并没有. 不是说我偷懒了没写 ...

  2. 微信小程序开发初体验--教你开发小程序

    微信小程序 微信小程序面世以来受到的关注颇多,直到最近我才动手尝试进行了小程序的开发,总体上感觉还是不错的,有一点不适应的就是要摆脱Web APP开发对DOM的操作.在这里我就把我是如何利用API开发 ...

  3. 微信小程序开发-蓝牙功能开发

    0. 前言 这两天刚好了解了一下微信小程序的蓝牙功能.主要用于配网功能.发现微信的小程序蓝牙API已经封装的很好了.编程起来很方便.什么蓝牙知识都不懂的情况下,不到两天就晚上数据的收发了,剩下的就是数 ...

  4. 微信小程序开发心得

    微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...

  5. 【微信小程序开发•系列文章六】生命周期和路由

    这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...

  6. 微信小程序开发日记——高仿知乎日报(下)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  7. 微信小程序开发日记——高仿知乎日报(中)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...

  8. 微信小程序开发日记——高仿知乎日报(上)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  9. 微信小程序开发工具测评

    1月9日微信小程序正式上线.很多企业都希望能在这个.但是在技术开发的问题上,却不知道该如何下手.经过一些程序员不辞辛苦连夜测试,终于从十余款工具呕心沥血筛选出四款比较靠谱实用的微信小程序开发工具.接下 ...

随机推荐

  1. python-访问者模式

    源码地址:https://github.com/weilanhanf/PythonDesignPatterns 说明: 访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的.比较稳定的对象结构, ...

  2. instanceof与constructor的区别

    名词介绍 instanceof 的作用是判断实例对象是否为构造函数的实例,实际上判断的是实例对象的__proto__属性与构造函数的prototype属性是否指向同一引用: constructor 的 ...

  3. go语言练习:sha256、sha512哈希算法

    package main import ( "fmt" "crypto/sha256") func main() { str:="test hash. ...

  4. su、sudo、su - root的区别

    su和sudo的区别 共同点:都是root用户权限: 不同点:su只获得root权限,工作环境不变,还是在切换之前用户的工作环境:sudo是完全获得root的权限和root的工作环境. sudo:表示 ...

  5. LeetCode题解之 Convert Sorted Array to Binary Search Tree

    1.题目描述 2.问题分析 使用二分法即可. 3.代码 TreeNode* sortedArrayToBST(vector<int>& nums) { ) return NULL; ...

  6. python终端总是无法删除字符

    yum install readline-devel

  7. MySQL隐形索引简介

    不可见索引允许您将索引标记为查询优化器不可用.MySQL维护不可见索引,并在与索引关联的列中的数据发生更改时使其保持最新. 默认情况下,索引是可见的.要使它们不可见,您必须在创建时或使用ALTER T ...

  8. InfoPath读取数据库

    public void LoadBtn_Clicked(object sender, ClickedEventArgs e) { // 配置连接字符串 using (SqlConnection con ...

  9. git status 显示中文和解决中文乱码

    目录 git status 显示中文和解决中文乱码 解决git status不能显示中文 解决git bash 终端显示中文乱码 通过修改配置文件来解决中文乱码 git status 显示中文和解决中 ...

  10. Matlab feval函数(转)

    http://zhidao.baidu.com/link?url=7CusQYQXhCDB8sUtolMEhI1ctnpblbYrpSnU0fhIh5LvDZuhsBuozQusS6Kb1McTp7x ...