pythonは通知インタフェースから企業微信通知を送信することを実現する

6628 ワード

pythonは通知インタフェースから企業微信通知を送信することを実現する
  • 問題背景
  • 要点説明
  • 1. インタフェース認証を要求しtoken値
  • を返す
  • 2.要求通知インタフェース企業微信通知
  • の送信
  • 3.通知内容における入力パラメータ
  • 問題の背景
    プロジェクトではpythonにより企業の微信インタフェースから通知を送信する機能を実現する必要があり、実現過程でいくつかの小さな問題が発見されたため、様々な状況をまとめた.
    要点説明
    1.インタフェース認証を要求しtoken値を返す
    import requests
    import json
    def request_token():
    	param = "{
    \t\"appkey\":\"appkey\",
    \t\"appsecret\":\"appsecret\"
    }"
    headers_token = { 'Content-Type': "application/json", 'User-Agent': "agent_name" } response_token = requests.request("POST", url='url', headers=headers_token, data=param) dict = json.loads(response_token.text) token = dict['data']['token']

    注意:
  • appkeyとappsecretはtokenを要求するときのアカウントとパスワードです.
  • エージェント「User-Agent」は、プロジェクトに記入しないとサーバがアクセスを拒否するため、実際の状況に応じて選択できます.
  • 'Content-Type'はjson形式であり、他の形式に変更すると400が返されます.
  • プロジェクトでtokenが返すように要求された複数のフィールドを含む辞書タイプの結果により、dataはtokenとexpを含み、tokenフィールドは取得したtoken値を返し、expフィールドはその値の有効時間を返す.カプセル化ライブラリの設定によって、返されるフィールドも異なり、実際の状況に応じて判断する必要があります.
  • は、戻り情報を抽出する際にjson.loadsで復号する必要があり、戻り結果のtoken値をdictで抽出することができる.

  • 2.要求通知インタフェース企業微信通知の送信
    import requests
    def send_notice():
        headers_port = {
            'Authorization': token,
            'User-Agent': "agent_name"
        }
        dict_data = {
            'receiver': receiver,
            'message': message
        }
        response = requests.request("POST", url='url', headers=headers_port, data=dict_data)
    

    注意:
  • headers_portでは、「Authorization」は取得したtoken値、「User-Agent」はエージェント名です.
  • dict_Dataはパッケージライブラリの要求に従って記入する通知主体である.

  • 3.通知内容における入力パラメータ
    import json
    def msg():
    	message['title'] = "    "
    	message['content'] = """
        	>    :%(DATE)s
        	>    :%(SCOPE)s
    		>
        	>**    **
    		>%(CONTENT)s
    	""" % dict(
        	DATE=date,
        	SCOPE=scope,
        	CONTENT=content
        	)
    	message = json.dumps(message)
    

    注意:
  • 「data」、「scope」、「content」はいずれも外部から入力されたパラメータであり、自分で定義することができる.
  • message本体はhtmlタイプをサポートしているので、htmlタイプで異なる表示効果を設定し、通知ポイントを強調することができます.
  • パッケージライブラリ要件では、messgeコンテンツがjsonタイプであることが明確であるため、最後にjson.dumpsで符号化する必要がある.