微信公众账号开发模式1

原文链接:http://hetuo.kuaizhan.com/70/28/p1382371171f506

最近调研微信公众平台,因为要接入,踩了一些坑,记录一下。

1.账号类型:未认证的微信公众平台订阅号能够在开发者模式下做的事情很少,只能回复消息啥的,回复带图片的消息,需要通过先上传图片资源,上传图片是需要access_token,而获取access_token是需要appId和secret的,而未认证的微信公众平台订阅号没有这个。目前知道的服务号有appId和secret,可以做的事情很多,没有认证的订阅号账号,但是估计应该也有appId和secret,因为认证的订阅号是可以自定义菜单的(自定义菜单需要access_token)。

2.账号密码一键搞定:产品同学发现微盟可以让用户直接输入微信公众账号和密码进行第三方的接入,我第一反应觉得这是极不安全的,因为账号和密码暴露给了第三方,但是这样极大的方便了用户,用户接入成本降低,他不需要知道appId和secret是什么,微盟目前这样做说明得到了用户的认可,用户在安全和方便之间做了选择。这样获取用户appId和secret就需要模拟微信公众账号登录,抓取网页html数据来获取用户的appId和secret,用户工作减少了,工作都交给后台服务器了。这里主要是通过chrome 的console查看微信公众账号请求数据的,需要注意的是请求要设置referer参数,php代码:curl_setopt($ch, CURLOPT_REFERER, "https://mp.weixin.qq.com/"); 不然会返回错误信息,之后需要保存cookie到一个文件中。php代码:$cookie_jar = tempnam('./tmp','cookie'); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); 之后redirect请求的时候带上这个cookie进行页面跳转 php代码:curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar); 抓取html中数据用的是simplehtmldom,可以在sourceforge上找到源码,通过像css选择器一样的方式查找html标签,非常方便。

3.区分服务:服务器端提供一个接口需要进行最初的有效性认证,也要满足之后的消息回复功能,这里需要区分微信那边来的请求是哪一种,这里判断_GET["echostr"]是否为空即可,不为空即为有效性认证,为空即为接收消息或者事件。

4.之前一直以为必须得有一个服务号才能测试,后来发现还是可以申请测试账号的,链接如下 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 不过要抓取html来获取appId和secret的话,还是需要服务号和认证的订阅号账号密码的,因为需要知道html的结构。

未完待续,写的比较仓促,错误之处欢迎批评指正。

如有疑问可以在论坛中发帖提问或者直接评论提问,我会尽量一一回复。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值