shell - 获取消息任务状态返回{"ret":"FAIL","data":{"error_code":"2008"}}

查看:525
本文介绍了shell - 获取消息任务状态返回{"ret":"FAIL","data":{"error_code":"2008"}}的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

问题描述

我们后台使用友盟推送提供的一套API来实现发送消息,撤销消息,查看消息发送状态等功能。在使用查看消息发送状态功能的时候发现友盟始终返回{"ret":"FAIL","data":{"error_code":"2008"}}错误。

已尝试解决

  1. 联系友盟的支持邮箱,根据提示使用了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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆