微信公众号定时推送(github上CI实现)

1、申请微信公众号,准备工作

https://mp.weixin.qq.com/
得到 appID 和 appsecret (后面有用)
在这里插入图片描述
有个二维码,一扫就有微信号(后面有用)
在这里插入图片描述新增模板,得到模板ID (后面有用)
在这里插入图片描述
模板如下:

城市是:{{city.DATA}}
今天的天气是:{{weather.DATA}}
最高气温为: {{max_temperature.DATA}}
最低气温为: {{min_temperature.DATA}}
今天是我们恋爱的第{{love_day.DATA}}天
距离生日还有{{birthday.DATA}}
每日一句:
{{note_en.DATA}}
{{note_ch.DATA}}

在config.txt文件里改
在这里插入图片描述

{
# 公众号配置
# 公众号appId
"app_id": " ",
# 公众号appSecret
"app_secsret": " ",
# 模板消息id
"template_id": " ",
# 接收公众号消息的微信号,如果有多个,需要在[]里用英文逗号间隔,例如["wx1", "wx2"]
"user": [" "],

# 信息配置
# 所在省份
"province": "北京",
# 所在城市
"city": "北京",
# 生日1,修改名字为对应需要显示的名字,如果生日为农历,在最前面加上r即可
"birthday": {"name": "熊大", "birthday": "r1999-04-02"},
# 生日2
#"birthday2": {"name": "宝贝", "birthday": "r1999-08-18"},
# 在一起的日子,格式同上
"love_date": "2000-02-28"
}

goodmorning.py
需要两个库:
pip install zhdate
pip install requests

import random
from time import time, localtime
import cityinfo
from requests import get, post
from datetime import datetime, date
from zhdate import ZhDate
import sys
import os


def get_color():
    # 获取随机颜色
    get_colors = lambda n: list(map(lambda i: "#" + "%06x" % random.randint(0, 0xFFFFFF), range(n)))
    color_list = get_colors(100)
    return random.choice(color_list)


def get_access_token():
    # appId
    app_id = config["app_id"]
    # appSecret
    app_secret = config["app_secret"]
    post_url = f'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={app_id}&secret={app_secret}'
    try:
        access_token = get(post_url).json()['access_token']
    except KeyError:
        print("获取access_token失败,请检查app_id和app_secret是否正确")
        os.system("pause")
        sys.exit(1)
    # print(access_token)
    return access_token


def get_weather(province, city):
    # 城市id
    try:
        city_id = cityinfo.cityInfo[province][city]["AREAID"]
    except KeyError:
        print("推送消息失败,请检查省份或城市是否正确")
        os.system("pause")
        sys.exit(1)
    # 毫秒级时间戳
    t = (int(round(time() * 1000)))
    # headers = {
    #     "Referer": "http://www.weather.com.cn/weather1d/{}.shtml".format(city_id),
    #     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
    #                   'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
    # }
    # url = "http://d1.weather.com.cn/dingzhi/{}.html?_={}".format(city_id, t)
    # response = get(url, headers=headers)
    url = f"https://devapi.qweather.com/v7/weather/3d?location={city_id}&key=2b0eac5a4b874cb7b9027fe1039f1ac8"
    response = get(url)
    response.encoding = "utf-8"
    response_data = response.text.split(";")[0].split("=")[-1]
    response_json = eval(response_data)
    # print(response_json)
    weatherinfo = response_json["daily"][0]
    # 天气
    weather = weatherinfo["textDay"]
    # 最高气温
    temp = weatherinfo["tempMax"]
    # 最低气温
    tempn = weatherinfo["tempMin"]
    return weather, temp, tempn


def get_birthday(birthday, year, today):
    birthday_year = birthday.split("-")[0]
    # 判断是否为农历生日
    if birthday_year[0] == "r":
        r_mouth = int(birthday.split("-")[1])
        r_day = int(birthday.split("-")[2])
        # 今年生日
        birthday = ZhDate(year, r_mouth, r_day).to_datetime().date()
        year_date = birthday
    else:
        # 获取国历生日的今年对应月和日
        birthday_month = int(birthday.split("-")[1])
        birthday_day = int(birthday.split("-")[2])
        # 今年生日
        year_date = date(year, birthday_month, birthday_day)
    # 计算生日年份,如果还没过,按当年减,如果过了需要+1
    if today > year_date:
        if birthday_year[0] == "r":
            # 获取农历明年生日的月和日
            r_last_birthday = ZhDate((year + 1), r_mouth, r_day).to_datetime().date()
            birth_date = date((year + 1), r_last_birthday.month, r_last_birthday.day)
        else:
            birth_date = date((year + 1), birthday_month, birthday_day)
        birth_day = str(birth_date.__sub__(today)).split(" ")[0]
    elif today == year_date:
        birth_day = 0
    else:
        birth_date = year_date
        birth_day = str(birth_date.__sub__(today)).split(" ")[0]
    return birth_day


def get_ciba():
    url = "http://open.iciba.com/dsapi/"
    headers = {
        'Content-Type': 'application/json',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                      'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
    }
    r = get(url, headers=headers)
    note_en = r.json()["content"]
    note_ch = r.json()["note"]
    return note_ch, note_en


def send_message(to_user, access_token, city_name, weather, max_temperature, min_temperature, note_ch, note_en):
    url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={}".format(access_token)
    week_list = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
    year = localtime().tm_year
    month = localtime().tm_mon
    day = localtime().tm_mday
    today = datetime.date(datetime(year=year, month=month, day=day))
    week = week_list[today.isoweekday() % 7]
    # 获取在一起的日子的日期格式
    love_year = int(config["love_date"].split("-")[0])
    love_month = int(config["love_date"].split("-")[1])
    love_day = int(config["love_date"].split("-")[2])
    love_date = date(love_year, love_month, love_day)
    # 获取在一起的日期差
    love_days = str(today.__sub__(love_date)).split(" ")[0]
    # 获取所有生日数据
    birthdays = {}
    for k, v in config.items():
        if k[0:5] == "birth":
            birthdays[k] = v
    data = {
        "touser": to_user,
        "template_id": config["template_id"],
        "url": "http://weixin.qq.com/download",
        "topcolor": "#FF0000",
        "data": {
            "date": {
                "value": "{} {}".format(today, week),
                "color": get_color()
            },
            "city": {
                "value": city_name,
                "color": get_color()
            },
            "weather": {
                "value": weather,
                "color": get_color()
            },
            "min_temperature": {
                "value": min_temperature,
                "color": get_color()
            },
            "max_temperature": {
                "value": max_temperature,
                "color": get_color()
            },
            "love_day": {
                "value": love_days,
                "color": get_color()
            },
            "note_en": {
                "value": note_en,
                "color": get_color()
            },
            "note_ch": {
                "value": note_ch,
                "color": get_color()
            }
        }
    }
    for key, value in birthdays.items():
        # 获取距离下次生日的时间
        birth_day = get_birthday(value["birthday"], year, today)
        if birth_day == 0:
            birthday_data = "今天{}生日哦,祝{}生日快乐!".format(value["name"], value["name"])
        else:
            birthday_data = "距离{}的生日还有{}天".format(value["name"], birth_day)
        # 将生日数据插入data
        data["data"][key] = {"value": birthday_data, "color": get_color()}
    headers = {
        'Content-Type': 'application/json',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                      'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
    }
    response = post(url, headers=headers, json=data).json()
    if response["errcode"] == 40037:
        print("推送消息失败,请检查模板id是否正确")
    elif response["errcode"] == 40036:
        print("推送消息失败,请检查模板id是否为空")
    elif response["errcode"] == 40003:
        print("推送消息失败,请检查微信号是否正确")
    elif response["errcode"] == 0:
        print("推送消息成功")
    else:
        print(response)


if __name__ == "__main__":
    try:
        with open("config.txt", encoding="utf-8") as f:
            config = eval(f.read())
    except FileNotFoundError:
        print("推送消息失败,请检查config.txt文件是否与程序位于同一路径")
        os.system("pause")
        sys.exit(1)
    except SyntaxError:
        print("推送消息失败,请检查配置文件格式是否正确")
        os.system("pause")
        sys.exit(1)

    # 获取accessToken
    accessToken = get_access_token()
    # 接收的用户
    users = config["user"]
    # 传入省份和市获取天气信息
    province, city = config["province"], config["city"]
    weather, max_temperature, min_temperature = get_weather(province, city)
    # 获取词霸每日金句
    note_ch, note_en = get_ciba()
    # 公众号推送消息
    for user in users:
        send_message(user, accessToken, city, weather, max_temperature, min_temperature, note_ch, note_en)
    # os.system("pause")

2.github自动推送

在这里插入图片描述在储存库里面点击New,来新建一个库
在这里插入图片描述
在Repository name里面随便填个什么,我这里填的是time-push,然后下面选择Public
然后点击Create repository
在这里插入图片描述
在这里插入图片描述
在仓库页面点击Actions
然后选择Simple workflow
在这里插入图片描述
点击Configure
在这里插入图片描述
把这个部分全部删除,替换成以下内容

name: time-push
on:
  workflow_dispatch:
  schedule: 
    # 代表国际标准时间4点0分,北京时间需要+8小时,代表北京时间中午12点运行
    - cron: '0/25 0 * * *'
jobs:
#将工作流程中运行的所有作业组合在一起
  build:
  #定义名为 build 的作业。 子键将定义作业的属性 
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
    
      - name: Set up Python 3.9
        uses: actions/setup-python@v2
        with:
          python-version: 3.9.12
          cache: "pip"
        env:
          AGENT_TOOLSDIRECTORY: /opt/hostedtoolcache
      - name: Set timezone
        run: |
          cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
      - name: install pip packages
        run: |
          python -m pip install --upgrade pip
          pip3 install -r requirements.txt
      - name: time-push
        run: |
          python3 goodmorning_daily.py

其中倒数第三行这里的name:后面填写你在上面中创建的这个仓库的名字,我这里就填写time-push
完成后点击Start commit提交
在这里插入图片描述
然后我们点击仓库名称回到主界面
在这里插入图片描述
然后我们点击仓库名称回到主界面
在这里插入图片描述

在这里插入图片描述
选择Upload files
点击Choose your files
在这里插入图片描述
只需要上传这三个就可以了:
在这里插入图片描述
点击Commit changes
在这里插入图片描述
就好了
在这里插入图片描述
额外需要的文件放到这了:
cityinfo.py


cityInfo = {
  "北京": {
    "北京": {
      "AREAID": "101010100"
    }
  },
  "上海": {
    "上海": {
      "AREAID": "101020100"
    }
  },
  "天津": {
    "天津": {
      "AREAID": "101030100"
    }
  },
  "重庆": {
    "重庆": {
      "AREAID": "101040100"
    }
  },
  "黑龙江": {
    "哈尔滨": {
      "AREAID": "101050101"
    },
    "齐齐哈尔": {
      "AREAID": "101050201"
    },
    "牡丹江": {
      "AREAID": "101050301"
    },
    "佳木斯": {
      "AREAID": "101050401"
    },
    "绥化": {
      "AREAID": "101050501"
    },
    "黑河": {
      "AREAID": "101050601"
    },
    "大兴安岭": {
      "AREAID": "101050701"
    },
    "伊春": {
      "AREAID": "101050801"
    },
    "大庆": {
      "AREAID": "101050901"
    },
    "七台河": {
      "AREAID": "101051002"
    },
    "鸡西": {
      "AREAID": "101051101"
    },
    "鹤岗": {
      "AREAID": "101051201"
    },
    "双鸭山": {
      "AREAID": "101051301"
    }
  },
  "吉林": {
    "长春": {
      "AREAID": "101060101"
    },
    "吉林": {
      "AREAID": "101060201"
    },
    "延边": {
      "AREAID": "101060306"
    },
    "四平": {
      "AREAID": "101060401"
    },
    "通化": {
      "AREAID": "101060501"
    },
    "白城": {
      "AREAID": "101060601"
    },
    "辽源": {
      "AREAID": "101060701"
    },
    "松原": {
      "AREAID": "101060801"
    },
    "白山": {
      "AREAID": "101060901"
    }
  },
  "辽宁": {
    "沈阳": {
      "AREAID": "101070101"
    },
    "大连": {
      "AREAID": "101070201"
    },
    "鞍山": {
      "AREAID": "101070301"
    },
    "抚顺": {
      "AREAID": "101070401"
    },
    "本溪": {
      "AREAID": "101070501"
    },
    "丹东": {
      "AREAID": "101070601"
    },
    "锦州": {
      "AREAID": "101070701"
    },
    "营口": {
      "AREAID": "101070801"
    },
    "阜新": {
      "AREAID": "101070901"
    },
    "辽阳": {
      "AREAID": "101071001"
    },
    "铁岭": {
      "AREAID": "101071101"
    },
    "朝阳": {
      "AREAID": "101071201"
    },
    "盘锦": {
      "AREAID": "101071301"
    },
    "葫芦岛": {
      "AREAID": "101071401"
    }
  },
  "内蒙古": {
    "呼和浩特": {
      "AREAID": "101080101"
    },
    "包头": {
      "AREAID": "101080201"
    },
    "乌海": {
      "AREAID": "101080301"
    },
    "乌兰察布": {
      "AREAID": "101080405"
    },
    "通辽": {
      "AREAID": "101080501"
    },
    "赤峰": {
      "AREAID": "101080601"
    },
    "鄂尔多斯": {
      "AREAID": "101080701"
    },
    "巴彦淖尔": {
      "AREAID": "101080811"
    },
    "锡林郭勒": {
      "AREAID": "101080902"
    },
    "呼伦贝尔": {
      "AREAID": "101081013"
    },
    "兴安盟": {
      "AREAID": "101081108"
    },
    "阿拉善盟": {
      "AREAID": "101081213"
    }
  },
  "河北": {
    "石家庄": {
      "AREAID": "101090101"
    },
    "保定": {
      "AREAID": "101090201"
    },
    "张家口": {
      "AREAID": "101090301"
    },
    "承德": {
      "AREAID": "101090402"
    },
    "唐山": {
      "AREAID": "101090501"
    },
    "廊坊": {
      "AREAID": "101090601"
    },
    "沧州": {
      "AREAID": "101090701"
    },
    "衡水": {
      "AREAID": "101090801"
    },
    "邢台": {
      "AREAID": "101090901"
    },
    "邯郸": {
      "AREAID": "101091001"
    },
    "秦皇岛": {
      "AREAID": "101091101"
    },
    "雄安新区": {
      "AREAID": "101091201"
    }
  },
  "山西": {
    "太原": {
      "AREAID": "101100101"
    },
    "大同": {
      "AREAID": "101100201"
    },
    "阳泉": {
      "AREAID": "101100301"
    },
    "晋中": {
      "AREAID": "101100401"
    },
    "长治": {
      "AREAID": "101100501"
    },
    "晋城": {
      "AREAID": "101100601"
    },
    "临汾": {
      "AREAID": "101100701"
    },
    "运城": {
      "AREAID": "101100801"
    },
    "朔州": {
      "AREAID": "101100901"
    },
    "忻州": {
      "AREAID": "101101001"
    },
    "吕梁": {
      "AREAID": "101101100"
    }
  },
  "陕西": {
    "西安": {
      "AREAID": "101110101"
    },
    "咸阳": {
      "AREAID": "101110200"
    },
    "延安": {
      "AREAID": "101110300"
    },
    "榆林": {
      "AREAID": "101110401"
    },
    "渭南": {
      "AREAID": "101110501"
    },
    "商洛": {
      "AREAID": "101110601"
    },
    "安康": {
      "AREAID": "101110701"
    },
    "汉中": {
      "AREAID": "101110801"
    },
    "宝鸡": {
      "AREAID": "101110901"
    },
    "铜川": {
      "AREAID": "101111001"
    },
    "杨凌": {
      "AREAID": "101111101"
    }
  },
  "山东": {
    "济南": {
      "AREAID": "101120101"
    },
    "青岛": {
      "AREAID": "101120201"
    },
    "淄博": {
      "AREAID": "101120301"
    },
    "德州": {
      "AREAID": "101120401"
    },
    "烟台": {
      "AREAID": "101120501"
    },
    "潍坊": {
      "AREAID": "101120601"
    },
    "济宁": {
      "AREAID": "101120701"
    },
    "泰安": {
      "AREAID": "101120801"
    },
    "临沂": {
      "AREAID": "101120901"
    },
    "菏泽": {
      "AREAID": "101121001"
    },
    "滨州": {
      "AREAID": "101121101"
    },
    "东营": {
      "AREAID": "101121201"
    },
    "威海": {
      "AREAID": "101121301"
    },
    "枣庄": {
      "AREAID": "101121401"
    },
    "日照": {
      "AREAID": "101121501"
    },
    "莱芜": {
      "AREAID": "101121601"
    },
    "聊城": {
      "AREAID": "101121701"
    }
  },
  "新疆": {
    "乌鲁木齐": {
      "AREAID": "101130101"
    },
    "克拉玛依": {
      "AREAID": "101130201"
    },
    "石河子": {
      "AREAID": "101130301"
    },
    "昌吉": {
      "AREAID": "101130401"
    },
    "吐鲁番": {
      "AREAID": "101130501"
    },
    "巴音郭楞": {
      "AREAID": "101130609"
    },
    "阿拉尔": {
      "AREAID": "101130701"
    },
    "阿克苏": {
      "AREAID": "101130801"
    },
    "喀什": {
      "AREAID": "101130901"
    },
    "伊犁": {
      "AREAID": "101131012"
    },
    "塔城": {
      "AREAID": "101131101"
    },
    "哈密": {
      "AREAID": "101131201"
    },
    "和田": {
      "AREAID": "101131301"
    },
    "阿勒泰": {
      "AREAID": "101131401"
    },
    "克州": {
      "AREAID": "101131505"
    },
    "博尔塔拉": {
      "AREAID": "101131604"
    },
    "图木舒克": {
      "AREAID": "101131701"
    },
    "五家渠": {
      "AREAID": "101131801"
    },
    "铁门关": {
      "AREAID": "101131901"
    },
    "昆玉": {
      "AREAID": "101131920"
    },
    "北屯": {
      "AREAID": "101132101"
    },
    "双河": {
      "AREAID": "101132201"
    },
    "可克达拉": {
      "AREAID": "101132301"
    }
  },
  "西藏": {
    "拉萨": {
      "AREAID": "101140101"
    },
    "日喀则": {
      "AREAID": "101140201"
    },
    "山南": {
      "AREAID": "101140301"
    },
    "林芝": {
      "AREAID": "101140401"
    },
    "昌都": {
      "AREAID": "101140501"
    },
    "那曲": {
      "AREAID": "101140601"
    },
    "阿里": {
      "AREAID": "101140701"
    }
  },
  "青海": {
    "西宁": {
      "AREAID": "101150101"
    },
    "海东": {
      "AREAID": "101150207"
    },
    "黄南": {
      "AREAID": "101150305"
    },
    "海南": {
      "AREAID": "101150402"
    },
    "果洛": {
      "AREAID": "101150507"
    },
    "玉树": {
      "AREAID": "101150601"
    },
    "海西": {
      "AREAID": "101150702"
    },
    "海北": {
      "AREAID": "101150804"
    }
  },
  "甘肃": {
    "兰州": {
      "AREAID": "101160101"
    },
    "定西": {
      "AREAID": "101160201"
    },
    "平凉": {
      "AREAID": "101160301"
    },
    "庆阳": {
      "AREAID": "101160401"
    },
    "武威": {
      "AREAID": "101160501"
    },
    "金昌": {
      "AREAID": "101160601"
    },
    "张掖": {
      "AREAID": "101160701"
    },
    "酒泉": {
      "AREAID": "101160801"
    },
    "天水": {
      "AREAID": "101160901"
    },
    "陇南": {
      "AREAID": "101161010"
    },
    "临夏": {
      "AREAID": "101161101"
    },
    "甘南": {
      "AREAID": "101161209"
    },
    "白银": {
      "AREAID": "101161301"
    },
    "嘉峪关": {
      "AREAID": "101161401"
    }
  },
  "宁夏": {
    "银川": {
      "AREAID": "101170101"
    },
    "石嘴山": {
      "AREAID": "101170201"
    },
    "吴忠": {
      "AREAID": "101170301"
    },
    "固原": {
      "AREAID": "101170401"
    },
    "中卫": {
      "AREAID": "101170501"
    }
  },
  "河南": {
    "郑州": {
      "AREAID": "101180101"
    },
    "安阳": {
      "AREAID": "101180201"
    },
    "新乡": {
      "AREAID": "101180301"
    },
    "许昌": {
      "AREAID": "101180401"
    },
    "平顶山": {
      "AREAID": "101180501"
    },
    "信阳": {
      "AREAID": "101180601"
    },
    "南阳": {
      "AREAID": "101180701"
    },
    "开封": {
      "AREAID": "101180801"
    },
    "洛阳": {
      "AREAID": "101180901"
    },
    "商丘": {
      "AREAID": "101181001"
    },
    "焦作": {
      "AREAID": "101181101"
    },
    "鹤壁": {
      "AREAID": "101181201"
    },
    "濮阳": {
      "AREAID": "101181301"
    },
    "周口": {
      "AREAID": "101181401"
    },
    "漯河": {
      "AREAID": "101181501"
    },
    "驻马店": {
      "AREAID": "101181601"
    },
    "三门峡": {
      "AREAID": "101181701"
    },
    "济源": {
      "AREAID": "101181801"
    }
  },
  "江苏": {
    "南京": {
      "AREAID": "101190101"
    },
    "无锡": {
      "AREAID": "101190201"
    },
    "镇江": {
      "AREAID": "101190301"
    },
    "苏州": {
      "AREAID": "101190401"
    },
    "南通": {
      "AREAID": "101190501"
    },
    "扬州": {
      "AREAID": "101190601"
    },
    "盐城": {
      "AREAID": "101190701"
    },
    "徐州": {
      "AREAID": "101190801"
    },
    "淮安": {
      "AREAID": "101190901"
    },
    "连云港": {
      "AREAID": "101191001"
    },
    "常州": {
      "AREAID": "101191101"
    },
    "泰州": {
      "AREAID": "101191201"
    },
    "宿迁": {
      "AREAID": "101191301"
    }
  },
  "湖北": {
    "武汉": {
      "AREAID": "101200101"
    },
    "襄阳": {
      "AREAID": "101200201"
    },
    "鄂州": {
      "AREAID": "101200301"
    },
    "孝感": {
      "AREAID": "101200401"
    },
    "黄冈": {
      "AREAID": "101200501"
    },
    "黄石": {
      "AREAID": "101200601"
    },
    "咸宁": {
      "AREAID": "101200701"
    },
    "荆州": {
      "AREAID": "101200801"
    },
    "宜昌": {
      "AREAID": "101200901"
    },
    "恩施": {
      "AREAID": "101201001"
    },
    "十堰": {
      "AREAID": "101201101"
    },
    "神农架": {
      "AREAID": "101201201"
    },
    "随州": {
      "AREAID": "101201301"
    },
    "荆门": {
      "AREAID": "101201401"
    },
    "天门": {
      "AREAID": "101201501"
    },
    "仙桃": {
      "AREAID": "101201601"
    },
    "潜江": {
      "AREAID": "101201701"
    }
  },
  "浙江": {
    "杭州": {
      "AREAID": "101210101"
    },
    "湖州": {
      "AREAID": "101210201"
    },
    "嘉兴": {
      "AREAID": "101210301"
    },
    "宁波": {
      "AREAID": "101210401"
    },
    "绍兴": {
      "AREAID": "101210507"
    },
    "台州": {
      "AREAID": "101210601"
    },
    "温州": {
      "AREAID": "101210701"
    },
    "丽水": {
      "AREAID": "101210801"
    },
    "金华": {
      "AREAID": "101210901"
    },
    "衢州": {
      "AREAID": "101211001"
    },
    "舟山": {
      "AREAID": "101211101"
    }
  },
  "安徽": {
    "合肥": {
      "AREAID": "101220101"
    },
    "蚌埠": {
      "AREAID": "101220201"
    },
    "芜湖": {
      "AREAID": "101220301"
    },
    "淮南": {
      "AREAID": "101220401"
    },
    "马鞍山": {
      "AREAID": "101220501"
    },
    "安庆": {
      "AREAID": "101220601"
    },
    "宿州": {
      "AREAID": "101220701"
    },
    "阜阳": {
      "AREAID": "101220801"
    },
    "亳州": {
      "AREAID": "101220901"
    },
    "黄山": {
      "AREAID": "101221001"
    },
    "滁州": {
      "AREAID": "101221101"
    },
    "淮北": {
      "AREAID": "101221201"
    },
    "铜陵": {
      "AREAID": "101221301"
    },
    "宣城": {
      "AREAID": "101221401"
    },
    "六安": {
      "AREAID": "101221501"
    },
    "池州": {
      "AREAID": "101221701"
    }
  },
  "福建": {
    "福州": {
      "AREAID": "101230101"
    },
    "厦门": {
      "AREAID": "101230201"
    },
    "宁德": {
      "AREAID": "101230301"
    },
    "莆田": {
      "AREAID": "101230401"
    },
    "泉州": {
      "AREAID": "101230501"
    },
    "漳州": {
      "AREAID": "101230601"
    },
    "龙岩": {
      "AREAID": "101230701"
    },
    "三明": {
      "AREAID": "101230801"
    },
    "南平": {
      "AREAID": "101230901"
    },
    "钓鱼岛": {
      "AREAID": "101231001"
    }
  },
  "江西": {
    "南昌": {
      "AREAID": "101240101"
    },
    "九江": {
      "AREAID": "101240201"
    },
    "上饶": {
      "AREAID": "101240301"
    },
    "抚州": {
      "AREAID": "101240401"
    },
    "宜春": {
      "AREAID": "101240501"
    },
    "吉安": {
      "AREAID": "101240601"
    },
    "赣州": {
      "AREAID": "101240701"
    },
    "景德镇": {
      "AREAID": "101240801"
    },
    "萍乡": {
      "AREAID": "101240901"
    },
    "新余": {
      "AREAID": "101241001"
    },
    "鹰潭": {
      "AREAID": "101241101"
    }
  },
  "湖南": {
    "长沙": {
      "AREAID": "101250101"
    },
    "湘潭": {
      "AREAID": "101250201"
    },
    "株洲": {
      "AREAID": "101250301"
    },
    "衡阳": {
      "AREAID": "101250401"
    },
    "郴州": {
      "AREAID": "101250501"
    },
    "常德": {
      "AREAID": "101250601"
    },
    "益阳": {
      "AREAID": "101250700"
    },
    "娄底": {
      "AREAID": "101250801"
    },
    "邵阳": {
      "AREAID": "101250901"
    },
    "岳阳": {
      "AREAID": "101251001"
    },
    "张家界": {
      "AREAID": "101251101"
    },
    "怀化": {
      "AREAID": "101251201"
    },
    "永州": {
      "AREAID": "101251401"
    },
    "湘西": {
      "AREAID": "101251509"
    }
  },
  "贵州": {
    "贵阳": {
      "AREAID": "101260101"
    },
    "遵义": {
      "AREAID": "101260201"
    },
    "安顺": {
      "AREAID": "101260301"
    },
    "黔南": {
      "AREAID": "101260413"
    },
    "黔东南": {
      "AREAID": "101260506"
    },
    "铜仁": {
      "AREAID": "101260601"
    },
    "毕节": {
      "AREAID": "101260701"
    },
    "六盘水": {
      "AREAID": "101260803"
    },
    "黔西南": {
      "AREAID": "101260906"
    }
  },
  "四川": {
    "成都": {
      "AREAID": "101270101"
    },
    "攀枝花": {
      "AREAID": "101270201"
    },
    "自贡": {
      "AREAID": "101270301"
    },
    "绵阳": {
      "AREAID": "101270401"
    },
    "南充": {
      "AREAID": "101270501"
    },
    "达州": {
      "AREAID": "101270601"
    },
    "遂宁": {
      "AREAID": "101270701"
    },
    "广安": {
      "AREAID": "101270801"
    },
    "巴中": {
      "AREAID": "101270901"
    },
    "泸州": {
      "AREAID": "101271001"
    },
    "宜宾": {
      "AREAID": "101271101"
    },
    "内江": {
      "AREAID": "101271201"
    },
    "资阳": {
      "AREAID": "101271301"
    },
    "乐山": {
      "AREAID": "101271401"
    },
    "眉山": {
      "AREAID": "101271501"
    },
    "凉山": {
      "AREAID": "101271601"
    },
    "雅安": {
      "AREAID": "101271701"
    },
    "甘孜": {
      "AREAID": "101271801"
    },
    "阿坝": {
      "AREAID": "101271901"
    },
    "德阳": {
      "AREAID": "101272001"
    },
    "广元": {
      "AREAID": "101272101"
    }
  },
  "广东": {
    "广州": {
      "AREAID": "101280101"
    },
    "韶关": {
      "AREAID": "101280201"
    },
    "惠州": {
      "AREAID": "101280301"
    },
    "梅州": {
      "AREAID": "101280401"
    },
    "汕头": {
      "AREAID": "101280501"
    },
    "深圳": {
      "AREAID": "101280601"
    },
    "珠海": {
      "AREAID": "101280701"
    },
    "佛山": {
      "AREAID": "101280800"
    },
    "肇庆": {
      "AREAID": "101280901"
    },
    "湛江": {
      "AREAID": "101281001"
    },
    "江门": {
      "AREAID": "101281101"
    },
    "河源": {
      "AREAID": "101281201"
    },
    "清远": {
      "AREAID": "101281301"
    },
    "云浮": {
      "AREAID": "101281401"
    },
    "潮州": {
      "AREAID": "101281501"
    },
    "东莞": {
      "AREAID": "101281601"
    },
    "中山": {
      "AREAID": "101281701"
    },
    "阳江": {
      "AREAID": "101281801"
    },
    "揭阳": {
      "AREAID": "101281901"
    },
    "茂名": {
      "AREAID": "101282001"
    },
    "汕尾": {
      "AREAID": "101282101"
    }
  },
  "云南": {
    "昆明": {
      "AREAID": "101290101"
    },
    "大理": {
      "AREAID": "101290201"
    },
    "红河": {
      "AREAID": "101290301"
    },
    "曲靖": {
      "AREAID": "101290401"
    },
    "保山": {
      "AREAID": "101290501"
    },
    "文山": {
      "AREAID": "101290601"
    },
    "玉溪": {
      "AREAID": "101290701"
    },
    "楚雄": {
      "AREAID": "101290801"
    },
    "普洱": {
      "AREAID": "101290901"
    },
    "昭通": {
      "AREAID": "101291001"
    },
    "临沧": {
      "AREAID": "101291101"
    },
    "怒江": {
      "AREAID": "101291201"
    },
    "迪庆": {
      "AREAID": "101291305"
    },
    "丽江": {
      "AREAID": "101291401"
    },
    "德宏": {
      "AREAID": "101291501"
    },
    "西双版纳": {
      "AREAID": "101291602"
    }
  },
  "广西": {
    "南宁": {
      "AREAID": "101300101"
    },
    "崇左": {
      "AREAID": "101300201"
    },
    "柳州": {
      "AREAID": "101300301"
    },
    "来宾": {
      "AREAID": "101300401"
    },
    "桂林": {
      "AREAID": "101300501"
    },
    "梧州": {
      "AREAID": "101300601"
    },
    "贺州": {
      "AREAID": "101300701"
    },
    "贵港": {
      "AREAID": "101300801"
    },
    "玉林": {
      "AREAID": "101300901"
    },
    "百色": {
      "AREAID": "101301001"
    },
    "钦州": {
      "AREAID": "101301101"
    },
    "河池": {
      "AREAID": "101301201"
    },
    "北海": {
      "AREAID": "101301301"
    },
    "防城港": {
      "AREAID": "101301401"
    }
  },
  "海南": {
    "海口": {
      "AREAID": "101310101"
    },
    "三亚": {
      "AREAID": "101310201"
    },
    "东方": {
      "AREAID": "101310202"
    },
    "临高": {
      "AREAID": "101310203"
    },
    "澄迈": {
      "AREAID": "101310204"
    },
    "儋州": {
      "AREAID": "101310205"
    },
    "昌江": {
      "AREAID": "101310206"
    },
    "白沙": {
      "AREAID": "101310207"
    },
    "琼中": {
      "AREAID": "101310208"
    },
    "定安": {
      "AREAID": "101310209"
    },
    "屯昌": {
      "AREAID": "101310210"
    },
    "琼海": {
      "AREAID": "101310211"
    },
    "文昌": {
      "AREAID": "101310212"
    },
    "保亭": {
      "AREAID": "101310214"
    },
    "万宁": {
      "AREAID": "101310215"
    },
    "陵水": {
      "AREAID": "101310216"
    },
    "乐东": {
      "AREAID": "101310221"
    },
    "五指山": {
      "AREAID": "101310222"
    },
    "三沙": {
      "AREAID": "101310301"
    }
  },
  "香港": {
    "香港": {
      "AREAID": "101320101"
    }
  },
  "澳门": {
    "澳门": {
      "AREAID": "101330101"
    }
  },
  "台湾": {
    "台北": {
      "AREAID": "101340101"
    },
    "高雄": {
      "AREAID": "101340201"
    },
    "台中": {
      "AREAID": "101340401"
    }
  }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信公众号开发源码Java是用Java语言编写的用于开发微信公众号的源代码。微信公众号开发是指通过开发者账号申请成为微信公众号的开发者,利用微信提供的开发接口和SDK来开发和管理公众号。 Java作为一种广泛应用于企业级开发的编程语言,在微信公众号开发中也得到了广泛应用。通过使用Java开发微信公众号,可以实现公众号的业务逻辑,包括用户管理、消息推送、菜单设置、素材管理等功能,以及与其他系统的对接、数据的处理和存储等。 对于开发微信公众号的源码来说,Java源码通常包括了处理微信服务器与开发者服务器之间的消息通信和交互的代码,以及各类功能模块的实现代码。开发者可以根据自己的需求和业务逻辑,使用Java语言编写各种业务逻辑代码,并通过开发工具集成微信提供的SDK库来实现微信服务器之间的交互。 在Java源码的基础上,开发者还可以根据需要进行定制和扩展,以满足更具体的业务需求。可以添加自定义的功能模块或者对现有功能进行修改和优化,以适应不同的应用场景和业务要求。 总之,微信公众号开发源码Java是用于开发微信公众号的源代码,通过使用Java语言和相应的开发工具,开发者可以自定义和实现具体的业务功能,满足不同用户的需求,并与微信服务器进行消息交互,为用户提供更好的微信公众号服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值