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

冉五五
  • 60

问题描述

我们后台使用友盟推送提供的一套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 '' # 换行符

麻烦大家帮忙测试测试,谢谢大家!

回复
阅读 4.1k
1 个回答
冉五五
  • 60
✓ 已被采纳

问题已经解决。

其实我的JSON格式是对的。问题就在于我的请求脚本所在电脑的公网IP没有加入到友盟后台的IP白名单中。解决办法是把你脚本所在IP地址加入到应用的白名单中即可正常访问。

问题的根源还是友盟的接口有问题。没有正确返回提示信息,增加了用户解决问题的成本。

最后还是希望众厂商能够把活做好点,多跑跑测试,少让用户来发现bug。

宣传栏