使用 Python 實(shí)現(xiàn)微信公眾號粉絲遷移

近日重虑,因公司業(yè)務(wù)需要,需將原兩個公眾號合并為一個全封,即要將其中一個公眾號(主要是粉絲)遷移到另一個公眾號。按微信規(guī)范桃犬,同一用戶在不同公眾號內(nèi)的 openid 是不同的售貌,我們的業(yè)務(wù)系統(tǒng)不例外地記錄了用戶的 openid,因此,涉及到兩個公眾號的 openid 的轉(zhuǎn)換疫萤。幸好颂跨,微信公眾號平臺在賬號遷移描述提供了方法和API供調(diào)用,詳見:http://kf.qq.com/faq/170221aUnmmU170221eUZJNf.html

這里使用 Python 寫個程序來完成扯饶,簡單快捷恒削,主要知識點(diǎn)有:

  • MySQL connector 使用池颈,也就是 Python DB API 規(guī)范
  • HTTP客戶端庫 requests 使用
  • 微信公眾號平臺 API 使用

首先,建立新舊 openid 對照表钓丰。

CREATE TABLE change_openidlist(
    id BIGINT NOT NULL AUTO_INCREMENT,
    ori_openid varchar(100) NOT NULL,
    new_openid varchar(100) NOT NULL,
    CONSTRAINT crm_change_openidlist_pk PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ;

如果沒有安裝躯砰,則需先安裝以下類庫。

pip install mysql-connector-python
pip install requests

接著携丁,運(yùn)行下面 python 程序琢歇,即可將新舊 openid 對照數(shù)據(jù)寫到 change_openidlist,然后就可以根據(jù)這個表的數(shù)據(jù)去更新其它數(shù)據(jù)表了梦鉴。
其它可見注釋李茫,不詳述,當(dāng)然不要忘了將 appid 和 secret 替換為自己公眾號肥橙。

# -*- coding: utf-8 -*-
import requests
import mysql.connector

def handle_data():
    try:
        token = get_access_token()
        #自動提交方式 autocommit=True
        conn = mysql.connector.connect(host='127.0.0.1', port='3306', user='user', password='password', database='wx', use_unicode=True,autocommit=True);
        qcursor = conn.cursor(buffered=True)
        wcursor = conn.cursor()
        #舊公眾號 openid
        qcursor.execute('select openid from wxmembers')
        size = 100
        while True:
            list = qcursor.fetchmany(size)
            if not list:
                break
            changeopenid_list = get_changeopenid_list(list,token)
            wcursor.executemany('insert into change_openidlist (ori_openid,new_openid) values (%s, %s)',changeopenid_list)
    except mysql.connector.Error as e:
        print ('Error : {}'.format(e))
    finally:
        qcursor.close
        wcursor.close()
        conn.close
        print 'openid handle finished!'

def get_access_token():
    new_appid = '00000'
    new_secret = '11111'
    url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential'  # grant_type為固定值
    payload = {'appid': new_appid, 'secret': new_secret}
    r = requests.get(url,params = payload)
    response = r.json()
    return response['access_token']

def get_changeopenid_list(ori_openid_list,token):
    new_access_token = token
    ori_appid = '33333'
    url = 'http://api.weixin.qq.com/cgi-bin/changeopenid?access_token='+ new_access_token
    payload = {'to_appid': ori_appid, 'openid_list': ori_openid_list}

    r = requests.post(url,json = payload)
    response = r.json()
    result_list = response['result_list']

    openid_list = [[result['ori_openid'],result['new_openid']] for result in result_list if result['err_msg'] == 'ok']

    return openid_list


if __name__ == '__main__':
    handle_data()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魄宏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子存筏,更是在濱河造成了極大的恐慌宠互,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椭坚,死亡現(xiàn)場離奇詭異予跌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)善茎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門券册,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巾表,你說我怎么就攤上這事汁掠。” “怎么了集币?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵考阱,是天一觀的道長。 經(jīng)常有香客問我鞠苟,道長乞榨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任当娱,我火速辦了婚禮吃既,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘跨细。我一直安慰自己鹦倚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布冀惭。 她就那樣靜靜地躺著震叙,像睡著了一般掀鹅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上媒楼,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天乐尊,我揣著相機(jī)與錄音,去河邊找鬼划址。 笑死扔嵌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夺颤。 我是一名探鬼主播痢缎,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拂共!你這毒婦竟也來了牺弄?” 一聲冷哼從身側(cè)響起姻几,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤宜狐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛇捌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抚恒,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年络拌,在試婚紗的時候發(fā)現(xiàn)自己被綠了俭驮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡春贸,死狀恐怖混萝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情萍恕,我是刑警寧澤逸嘀,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站允粤,受9級特大地震影響崭倘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜类垫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一司光、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悉患,春花似錦残家、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谴仙。三九已至,卻和暖如春碾盐,著一層夾襖步出監(jiān)牢的瞬間晃跺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工毫玖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掀虎,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓付枫,卻偏偏與公主長得像烹玉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子阐滩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容