微信编程样例
#!/bin/bash
: ${APPID:='wxfd6818e064c7db21'}
: ${APPSECRET:='92c882c1e44e74dd460967d2c791abef'}
: ${ACCESS_TOKEN:=}
array_get(){
local a=($(echo $1))
local i=$2
#echo ${a[@]:${i}:1}
echo ${a[@]:0:1}
}
weixin-get-access-token(){
if [ "${ACCESS_TOKEN}" == "" ]; then
echo "curl \"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}\" | jq '.access_token' | sed 's/\"//g'"
access_token=$(curl "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}" | jq '.access_token' | sed 's/\"//g')
export ACCESS_TOKEN=${access_token}
else
access_token=${ACCESS_TOKEN}
fi
echo ${access_token}
}
weixin-get-users(){
local _access_token=$1
local _data=$(curl "https://api.weixin.qq.com/cgi-bin/user/get?access_token=${_access_token}&next_openid=")
local _total_a=($(echo ${_data} | jq '.total'))
local _count_a=($(echo ${_data} | jq '.count'))
local _users_a=($(echo $(echo ${_data} | jq '.data.openid' | sed -E 's/[,\"]/\n/g' | sed -E 's/\[//g' | sed -E 's/\]//g')))
local _usersinfo=(${_total_a[@]} ${_count_a[@]} ${_users_a[@]})
echo ${_usersinfo[@]}
}
weixin-get-userinfo(){
local _access_token=$1
local _openid=$2
local _data=$(curl "https://api.weixin.qq.com/cgi-bin/user/info?access_token=${_access_token}&openid=${_openid}")
echo ${_data}
}
main(){
local access_token=$(echo $(weixin-get-access-token))
echo "Get Access Token: " ${access_token}
local usersinfo=($(echo $(weixin-get-users ${access_token})))
local total=${usersinfo[@]:0:1}
local count=${usersinfo[@]:1:1}
#local total=$(array_get ${usersinfo[@]} 0)
#local count=$(array_get ${usersinfo[@]} 1)
local users=($(echo ${usersinfo[@]:2}))
echo ${total}
echo ${count}
echo ${#users[@]}
echo ${users[@]}
for user in ${users[@]}; do
echo ${user}
local userinfo=$(weixin-get-userinfo ${access_token} ${user})
echo ${userinfo} | jq
done
}
main