设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 27205|回复: 11
打印 上一主题 下一主题

如何创建一个微信公众账号

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2013-8-13 23:44:15 |只看该作者 |倒序浏览
今天说些很编程稍微不是那么相关的话题--关于微信公众平台。

每个人都或多或少有自己擅长的领域,有的人会折纸,有的人对动漫很了解,有的人游戏打得好,有的人知道怎样在网上买到又好又便宜的衣服……过去,你的某些奇葩技能会让你在你的朋友小圈子里受到关注,别人有这方面需求的时候会找你帮忙。而如今,网络媒体的发达,使得你的这些能力可以不再受到地域的限制。你有各种各样的渠道传播自己的独到之处。而微信公众账号就是众多渠道之一。

在互联网上,有90%的人只阅读内容,9%会进一步加入讨论,而只有1%是内容的生产者。如果你想要试一试在互联网上发出自己的声音,不妨从创建一个微信公众号开始。就算你不想生产内容,也可以申请一个玩玩,看看公众号的后台是什么样的,反正不要钱嘛。

微信公众平台的网址是:
mp.weixin.qq.com

申请账号的细节我就不多说了,基本就是根据提示一步步走,提交必要的材料。关于账号的申请规则和使用条款似乎也总是在变。现在是要用邮箱申请,然后需要提交身份证号,拍摄手持身份证的照片,还要手机验证。比注册一个QQ号要麻烦。然后还要填写你打算申请的公众号信息,如账号名称、微信号、头像、说明等。很多信息都是设定了就不能再改的,所以要申请之前先想好。

要提醒注意的是,一个身份证只能注册两个号。之前申请过的不能删,不能改名。

申请好账号之后,等待一两天审核通过就可以群发消息了。微信推出5.0之后,把公众账号分为了订阅号和服务号。默认是订阅号,每天可以群发一条消息,但是会被聚合在“订阅号”栏目里。服务号会单独出现,有菜单功能,但每个月只能推送一条。

在微信公众平台上,可以看到你的订阅用户,他们给你发的留言,可以管理你推送的图文、图片、语音、视频素材,向你的用户群发这些素材或者文字消息。这些都比较容易上手,要特别说一下的是平台中提供的“高级功能”。
wx2.png
在高级功能中,可以切换微信公众号的模式:编辑模式/开发模式。两种模式只能取其一。

编辑模式中,把关键词和素材添加到回复规则里,就可以实现自动回复。我们教室账号发数字查看对应课程的功能就是借此实现的。
wx3.png
开发模式就比较复杂了。它是微信提供的一套api接口,把用户发你的信息发送到你指定的服务器上。而你对这些信息进行处理之后,按照微信设定的格式规则,向用户回复文字、图文、音频等信息。所以,要使用开发模式,你必须要有一台可以处理网络请求的服务器,也就是相当于搭建了一个网站后台。

我之前做过一个开发模式的公众号“yszx365”,现在已经处于荒废状态。无聊的朋友也可以上去调戏一下,发送城市名称、“人品”、“黄历”会收到回复,也还有一些关键词会收到开发到一半的胡言乱语。仅供测试,不是账号推荐,慎入。这个号依然是借助BAE搭建的(免费又支持python的平台不容易啊),用了bae版本的django框架,拿python写的。自定义的代码并不算长,回头放在crossin.me论坛上。

关于微信公众平台的介绍就先说这么多。其实现在微信公众号的热潮已经渐渐过去,5.0的推出也是在限制公众号对用户的“骚扰”。所以如果你此时有志要做好一个公众号,得有坚持抗战的心理准备。技术是次要的,内容、运营、宣传才是关键。对此有更多想法的朋友,可以到群里或论坛上,我们进一步交流。

当然,现在也有做得很成功的公众号。最近很火的消息:公众号“罗辑思维”卖会员,6小时卖出160万。临渊羡鱼,不如退而结网。有心想尝试网络媒体或网络营销方面的同学,不如就从注册一个微信公众号开始吧。

今天是七夕,成双成对去过节的同学,祝你们愉快。还是一个人,没有变成一只猫或一条狗的同学,码中自有颜如玉,咱们就和代码为伴吧!

#==== Crossin的编程教室 ====#
微信ID:crossincode
论坛:http://crossin.me
QQ群:312723402

面向零基础初学者的编程课
每天5分钟,轻松学编程




views.py

11.7 KB, 下载次数: 4

部分核心逻辑代码

#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

沙发
发表于 2013-8-16 16:49:15 |只看该作者
请问crossin老师的代码,我也想搭建一个学习。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2013-8-16 22:21:03 |只看该作者
Yubai 发表于 2013-8-16 16:49
请问crossin老师的代码,我也想搭建一个学习。

是用django框架搭的,所以整个的代码有很多。上传了一个核心逻辑的代码,仅供参考。直接拿了用肯定用不了。
建议先用编辑模式玩玩
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

地板
发表于 2013-9-27 14:20:21 |只看该作者
想问下·企业账户和个人有什么区别?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2013-9-27 14:58:58 |只看该作者
viking_tj 发表于 2013-9-27 14:20
想问下·企业账户和个人有什么区别?

提交的认证材料不一样,其他还没发现有什么功能上的不同
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2013-9-27 14:59:00 |只看该作者
viking_tj 发表于 2013-9-27 14:20
想问下·企业账户和个人有什么区别?

提交的认证材料不一样,其他还没发现有什么功能上的不同
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

19

积分

新手上路

Rank: 1

7#
发表于 2013-10-11 11:40:11 |只看该作者
企业账户可以变成服务号,个人貌似还不可以。
不过没必要变成服务号啦,每个月只能发一条。

本人在运营一个欧洲旅游的企业微信账号,有兴趣的欢迎关注噢~
走遍欧洲,微信号是eueueuclub

qrcode_for_gh_9cb707c9e744_430.jpg (31.44 KB, 下载次数: 737)

微信号:eueueuclub

微信号:eueueuclub

eueueu.com
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

8#
发表于 2014-2-19 00:12:41 |只看该作者
crossin老师好:)
昨天按照一个公众平台教程写了一些代码,用的是新浪的SAE,没想到最基本的token验证就过不去,自己查了半天也没明白问题在哪里,大蛇语言新手,烦请老师帮忙看看可好?

config.yaml 如下:
---
name: shameonyou
version: 1

libraries:
- name: webpy
  version: "0.36"
  
- name: lxml
  version: "2.3.4"
  
...


index.wsgi如下:
# coding: UTF-8
import os

import sae
import web

from weixinInterface import WeixinInterface

urls = (
'/weixin','WeixinInterface'
)

app_root = os.path.dirname(__file__)
templates_root = os.path.join(app_root, 'templates')
render = web.template.render(templates_root)

app = web.application(urls, globals()).wsgifunc()
application = sae.create_wsgi_app(app)

weixinInterface.py如下:

# -*- coding: utf-8 -*-
import hashlib
import web
import lxml
import time
import os
import urllib2,json
from lxml import etree

class WeixinInterface

    def __init__(self):
        self.app_root = os.path.dirname(__file__)
        self.templates_root = os.path.join(self.app_root, 'templates')
        self.render = web.template.render(self.templates_root)

    def GET(self):
        #获取输入参数
        data = web.input()
        signature=data.signature
        timestamp=data.timestamp
        nonce=data.nonce
        echostr=data.echostr
        #自己的token
        token="shameonyou" #这就是微信后台输入的token
        #字典序排序
        list=[token,timestamp,nonce]
        list.sort()
        sha1=hashlib.sha1()
        map(sha1.update,list)
        hashcode=sha1.hexdigest
        #sha1加密算法
        
        #如果是来自微信的请求,则回复echostr
        if hashcode == signature:
            return echostr
               

不能直接传图,就贴代码了,缩进应该不受影响的。
微信后台显示“服务器没有正确响应后台认证”
怎么回事啊……泪目
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

9#
发表于 2014-2-19 00:14:52 |只看该作者
crossin老师好:)
昨天按照一个公众平台教程写了一些代码,用的是新浪的SAE,没想到最基本的token验证就过不去,自己查了半天也没明白问题在哪里,大蛇语言新手,烦请老师帮忙看看可好?

config.yaml 如下:
---
name: shameonyou
version: 1

libraries:
- name: webpy
  version: "0.36"
  
- name: lxml
  version: "2.3.4"
  
...


index.wsgi如下
# coding: UTF-8
import os

import sae
import web

from weixinInterface import WeixinInterface

urls = (
'/weixin','WeixinInterface'
)

app_root = os.path.dirname(__file__)
templates_root = os.path.join(app_root, 'templates')
render = web.template.render(templates_root)

app = web.application(urls, globals()).wsgifunc()
application = sae.create_wsgi_app(app)

weixinInterface.py如下

# -*- coding: utf-8 -*-
import hashlib
import web
import lxml
import time
import os
import urllib2,json
from lxml import etree

class WeixinInterface

    def __init__(self):
        self.app_root = os.path.dirname(__file__)
        self.templates_root = os.path.join(self.app_root, 'templates')
        self.render = web.template.render(self.templates_root)

    def GET(self):
        #获取输入参数
        data = web.input()
        signature=data.signature
        timestamp=data.timestamp
        nonce=data.nonce
        echostr=data.echostr
        #自己的token
        token="shameonyou" #这就是微信后台输入的token
        #字典序排序
        list=[token,timestamp,nonce]
        list.sort()
        sha1=hashlib.sha1()
        map(sha1.update,list)
        hashcode=sha1.hexdigest
        #sha1加密算法
        
        #如果是来自微信的请求,则回复echostr
        if hashcode == signature:
            return echostr
               

不能直接传图,就贴代码了,缩进应该不受影响的。
微信后台显示“服务器没有正确响应后台认证”
怎么回事啊……泪目

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

10#
发表于 2014-2-19 10:45:11 |只看该作者
innershine 发表于 2014-2-19 00:14
crossin老师好:)
昨天按照一个公众平台教程写了一些代码,用的是新浪的SAE,没想到最基本的token验证就过 ...

光从代码没看出什么问题,你可以试着打出一些调试信息,看看哪里有异常

1 在代码中输出中间状态,比如拿到的signature, timestamp,看看是不是都正常拿到了
2 自己模拟微信,从浏览器里手动发送验证请求,看看收到的回复状态是什么
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-12-4 01:22 , Processed in 0.019546 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部