Bash
1 前言
一个问题,一篇文章,一出故事。
今天遇到服务器推送华为消息失败,于是尝试使用curl去测试下华为的接口,以便可以发现问题。
2 最佳实践
2.1 创建测试脚本
vim ~/scripts/pushMsg2Huawei.sh
加入如下脚本,
#!/bin/bash
# 设置变量
clientID="xxxxxx"
clientSecret="xxxxxx"
deviceToken="xxxxxx"
tokenURL="https://oauth-login.cloud.huawei.com/oauth2/v3/token"
pushURL="https://push-api.cloud.huawei.com/v1/$clientID/messages:send"
# 获取访问令牌
accessToken=$(curl -s -X POST "$tokenURL" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=$clientID" \
-d "client_secret=$clientSecret" | jq -r '.access_token')
# 检查是否成功获取到访问令牌
if [ -z "$accessToken" ]; then
echo "获取访问令牌失败,请检查您的凭据和请求!"
exit 1
fi
echo "成功获取访问令牌: $accessToken"
reSponse=$(curl -s -X POST "$pushURL" \
-H "Authorization: Bearer $accessToken" \
-H "Content-Type: application/json" \
-d '{
"message": {
"notification": {
"title": "您的标题",
"body": "您的消息内容。"
},
"to": "'"$deviceToken"'"
}
}')
# 输出响应
echo "推送消息响应: $reSponse"
2.2 测试脚本
bash ~/scripts/pushMsg2Huawei.sh
可见如下输出,
成功获取访问令牌: xxxx
推送消息响应: {"code":"80300010","msg":"token count should within 1 and 1,000","requestId":"176974409235304180028001"}
没有评论