shell - 获取消息任务状态返回{"ret":"FAIL","data":{"error_code":"2008"}}
本文介绍了shell - 获取消息任务状态返回{"ret":"FAIL","data":{"error_code":"2008"}}的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
问题描述
我们后台使用友盟推送提供的一套API来实现发送消息,撤销消息,查看消息发送状态等功能。在使用查看消息发送状态功能的时候发现友盟始终返回{"ret":"FAIL","data":{"error_code":"2008"}}
错误。
已尝试解决
联系友盟的支持邮箱,根据提示使用了curl工具(在bash shell环境下),但仍然返回错误。
相关代码
这是一个curl请求的bash脚本。
在填写taskId
的时候需要到友盟后台发送一条广播或组播推送,推送成功后将返回的task_id
填入即可。
appkey
是你在友盟申请的APPKEY。
appMasterSecret
是你在友盟申请的app secret。
#!/bin/bash
timestamp=`date '+%s'`
url='http://msg.umeng.com/api/status'
# 请输入下列三个参数
appkey='your_appkey'
appMasterSecret='your_app_master_secret'
taskId='msg_task_id'
postBody='{"appkey":'\"${appkey}\"',"timestamp":'\"${timestamp}\"',"task_id":'\"${taskId}\"'}'
sign=`echo -n "POST"${url}${postBody}${appMasterSecret} | md5sum | cut -d ' ' -f1`
# 开始请求数据
curl -i \
-X POST \
-H "Content-Type: application/json" \
-H "charset: utf-8" \
-H "Accept: application/json" \
-d ${postBody} \
${url}?sign=${sign}
echo '' # 换行符
麻烦大家帮忙测试测试,谢谢大家!
解决方案
问题已经解决。
其实我的JSON格式是对的。问题就在于我的请求脚本所在电脑的公网IP没有加入到友盟后台的IP白名单中。解决办法是把你脚本所在IP地址加入到应用的白名单中即可正常访问。
问题的根源还是友盟的接口有问题。没有正确返回提示信息,增加了用户解决问题的成本。
最后还是希望众厂商能够把活做好点,多跑跑测试,少让用户来发现bug。
这篇关于shell - 获取消息任务状态返回{"ret":"FAIL","data":{"error_code":"2008"}}的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文