如何調用友盟API進行消息推送以及遇到的坑

因爲不同業務的需求不同,這裏只是簡單DEMO

代碼

import hashlib
import json
import time


# 計算md5的函數
def md5(s):
    return hashlib.new("md5", s.encode("utf8")).hexdigest()


# 消息描述
description = '老黃曆'
# 要推送的消息
title = '今日運勢'
message = '宜上分;忌打碼'
# 過期時間
expireTime = '2020-05-28 14:11:54'
appkey = '5ece088f0cafb2b1b200015f'
app_master_secret = 'a8lkbfq8sy1v24tmszy4iefmsgdrrbk1'

# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
timestamp = int(round(time.time() * 1000))
method = 'POST'
url = 'https://msgapi.umeng.com/api/send'
params = {
    "policy": {
        "expire_time": expireTime
    },
    "description": description,
    "production_mode": True,
    "appkey": appkey,
    "payload": {
        "body": {
            "title": title,
            "ticker": title,
            "text": message,
            "after_open": "go_app",
            "play_vibrate": "false",
            "play_lights": "false",
            "play_sound": "true"
        },
        "display_type": "notification"
    },
    "type": "broadcast",
    "timestamp": timestamp
}

post_body = json.dumps(params)
# 計算簽名
sign = md5('%s%s%s%s' % (method, url, post_body, app_master_secret))
print()
# 輸出接口地址
print(url + '?sign=' + sign)
print()
# 輸出請求體
print(post_body)
# <<<<<<<<<<<<<<<<<<<<<<<<<<<

運行後輸出

在這裏插入圖片描述
爲什麼要把輸出的圖片貼出來呢?因爲這裏有下面要說的一個坑,如果只是複製下面的輸出就遇不到,但是如果是複製控制檯的輸出很可能就會遇到。

https://msgapi.umeng.com/api/send?sign=8ca87b046ce71c04f329bd17b05ad287

{"policy": {"expire_time": "2020-05-28 14:11:54"}, "description": "\u8001\u9ec4\u5386", "production_mode": true, "appkey": "5ece088f0cafb2b1b200015f", "payload": {"body": {"title": "\u4eca\u65e5\u8fd0\u52bf", "ticker": "\u4eca\u65e5\u8fd0\u52bf", "text": "\u5b9c\u4e0a\u5206\uff1b\u5fcc\u6253\u7801", "after_open": "go_app", "play_vibrate": "false", "play_lights": "false", "play_sound": "true"}, "display_type": "notification"}, "type": "broadcast", "timestamp": 1590569405625}

然後複製URL參數去模擬請求一下API
在這裏插入圖片描述
結果失敗了!
這就是一個坑的地方,上圖中的紅框圈出來的地方是一個換行,而參與計算簽名的JSON字符串沒有換行,所以簽名就不正確,解決方式很簡單,去掉最後一個換行就可以了
在這裏插入圖片描述
查看 一下手機,需要打開應用後才能收到
在這裏插入圖片描述

PS:

AppKeyApp Master Secret從控制檯中獲得
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章