前幾天在網路上看到一篇文章《教你用微信每天給女票說晚安》,感覺很神奇的樣子,隨後研究了一下,構思的確是巧妙。好,那就開始動工吧!伺服器有了,Python環境有了,IDE打開了...然而...然而...我意識到了一個非常嚴重的問題...沒有女朋友(T_T)...
微信開發已經活躍了很長時間了,在微信開發中有一個神奇的接口它叫模板消息接口,它可以根據用戶的openid從服務端給用戶推送自定義的模板消息,正因如此,我們可以利用這個特徵在伺服器端隨時向使用者推播訊息(前提是該使用者關注了該公眾號)。
總結出3點,1.範本訊息的格式可以自訂,2.範本訊息的內容可以自訂,3.範本訊息發送的時間可以自訂。那我們可以利用這些性質為自己做一款說早安的程式啦!
呼叫位址: http://open.iciba.com/dsapi/
請求方式:GET
請求參數:
參數 | 必選 | 類型 | 說明 |
---|---|---|---|
date | 否 | string | 格式為: 2013-05-06 ;若date 為空,則預設為當天 |
type | 否 | string | 可選值為last 和next ;以date 日期為準的, last 返回前一天的, next 返回後一天的 |
回傳類型:JSON
JSON字段解釋:
屬性名 | 屬性值類型 | 說明 |
---|---|---|
sid | string | 每日一句ID |
tts | string | 音訊位址 |
content | string | 英文內容 |
note | string | 中文內容 |
love | string | 每日一句喜歡個數 |
translation | string | 詞霸小編 |
picture | string | 圖片地址 |
picture2 | string | 大圖片地址 |
caption | string | 標題 |
dateline | string | 時間 |
s_pv | string | 瀏覽數 |
sp_pv | string | 語音評測瀏覽數 |
tags | array | 相關標籤 |
fenxiang_img | string | 合成圖片,建議分享微博用的 |
正常返回範例:
{
"sid" : " 3080 " ,
"tts" : " http://news.iciba.com/admin/tts/2018-08-01-day.mp3 " ,
"content" : " No matter how hard we try to be mature, we will always be a kid when we all get hurt and cry. " ,
"note" : "不管多努力蜕变成熟,一旦受伤哭泣时,我们还是像个孩子。 " ,
"love" : " 1966 " ,
"translation" : "小编的话:这句话出自小说《彼得·潘》。岁月永远年轻,我们慢慢老去。不管你如何蜕变,最后你会发现:童心未泯,是一件值得骄傲的事情。长大有时很简单,但凡事都能抱着一颗童心去快乐享受却未必容易。 " ,
"picture" : " http://cdn.iciba.com/news/word/20180801.jpg " ,
"picture2" : " http://cdn.iciba.com/news/word/big_20180801b.jpg " ,
"caption" : "词霸每日一句" ,
"dateline" : " 2018-08-01 " ,
"s_pv" : " 0 " ,
"sp_pv" : " 0 " ,
"tags" : [
{
"id" : null ,
"name" : null
}
],
"fenxiang_img" : " http://cdn.iciba.com/web/news/longweibo/imag/2018-08-01.jpg "
}
請求範例:
Python2請求範例
#!/usr/bin/python2
#coding=utf-8
import json
import urllib2
def get_iciba_everyday ():
url = 'http://open.iciba.com/dsapi/'
request = urllib2 . Request ( url )
response = urllib2 . urlopen ( request )
json_data = response . read ()
data = json . loads ( json_data )
return data
print get_iciba_everybody ()
Python3請求範例
#!/usr/bin/python3
#coding=utf-8
import json
import requests
def get_iciba_everyday ():
url = 'http://open.iciba.com/dsapi/'
r = requests . get ( url )
return json . loads ( r . text )
print ( get_iciba_everyday ())
PHP請求範例
<?php
function https_request ( $ url , $ data = null ){
$ curl = curl_init ();
curl_setopt ( $ curl , CURLOPT_URL , $ url );
curl_setopt ( $ curl , CURLOPT_HEADER , 0 );
curl_setopt ( $ curl , CURLOPT_SSL_VERIFYPEER , 0 );
curl_setopt ( $ curl , CURLOPT_SSL_VERIFYHOST , 0 );
if (! empty ( $ data )) {
curl_setopt ( $ curl , CURLOPT_POST , 1 );
curl_setopt ( $ curl , CURLOPT_POSTFIELDS , $ data );
}
curl_setopt ( $ curl , CURLOPT_RETURNTRANSFER , 1 );
$ output = curl_exec ( $ curl );
curl_close ( $ curl );
return $ output ;
}
function get_iciba_everyday (){
$ url = ' http://open.iciba.com/dsapi/ '
$ result = https_request ( $ url );
$ data = json_decode ( $ result );
return $ data ;
}
echo get_iciba_everyday ();
本介面(每日一句)官方文件:http://open.iciba.com/?c=wiki
參考資料:金山詞霸· 開發平台
掃描登入公眾平台測試號碼申請測試號碼的網址https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
手機上確認登入
找到新增测试模板
,新增模板訊息
填寫模板標題每日一句
,填寫以下模板內容
{{content.DATA}}
{{note.DATA}}
{{translation.DATA}}
提交保存之後,記住該模板ID
,一會兒會用到
找到测试号信息
,記住appid
和appsecret
,一會兒會用到
找到测试号二维码
。手機掃描此二維碼,追蹤之後,你的暱稱會出現在右側清單裡,記住該微訊號,一會兒會用到(註:此微訊號非你真實的微訊號)
本程式您只需要修改4個地方即可,請看註釋
本專案提供了Python2.x
, Python3.x
, PHP
, Linux shell
等語言的實現,可自行選擇合適的程序
在專案目錄中, crontab.txt
是Linux的定時任務的書寫格式; main.*
檔案是程式的執行入口檔案。
在Linux上執行程式
在手機上查看,已經收到了每日一句話的訊息
在Linux上設定定時任務
crontab -e
新增如下內容
0 6 * * * python /root/python/iciba/main-v1.0.py
註:以上內容的意思是,在每天6:00
的時候,執行這個Python程序查看定時任務是否設定成功
crontab -l
至此,程式部署完成,請您明天6:00
查收! 效果圖如下
本專案地址:https://github.com/varlemon/wechat-iciba-everyday
回到頂部