Il prend en charge la vérificationtoken
(passer)secret_key
Vous pouvez générer une URL directement accessible.
Par exemple, l'URL qui donne directement des instructions interactives à
les échanges en direct, qui peuvent être utilisés pourTradingView
ou leWebHook
Pour les autres cas.CommandRobot(RobotId, Cmd)
fonction, le paramètrenonce
n'a pas besoin de vérification, et la fréquence d'accès et
les temps de visite de l'interface ne sont pas limités.
Par exemple, leAccessKey
de l'extension crééeAPI KEY
est:xxx
et leSecretKey
est:yyy
. Consultez le lien suivant pour envoyer un message de commande interactif à
les transactions en direct avec l'ID de négociation en direct186515
, le message
le contenu est une chaîne:"ok12345"
.
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,"ok12345"]
Si la vérification directe est soutenue,
seulementCommandRobot
l'interface est prise en charge pour obtenir leBody
Par exemple, les paramètres dans leWebHook URL
deTradingView
:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,+""]
Veuillez faire attention au réglage selon le format suivant:args=[130350,+""]
, dans lequel130350
est la négociation en directID
de la plateforme de négociation quantitative FMZ.
Mettre dans la boîte de message deTrading View
(l'organisme requis)
données à envoyer):
Format JSON:
{"close": {{close}}, "name": "aaa"}
Les échanges en direct avecID
de186515
peut recevoir la chaîne de commande interactive:{"close": 39773.75, "name": "aaa"}
.
Format du texte:
BTCUSDTPERP Crossing 39700.00 close: {{close}}
Les échanges en direct avecID
de186515
peut recevoir la chaîne de commande interactive:BTCUSDTPERP Crossing 39700.00 close: 39739.4
.
Exemples dePython
& Golang
appels linguistiques:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
try:
import urllib2
except:
import urllib.request as urllib2
accessKey = 'your accessKey'
secretKey = 'your secretKey'
def api(method, *args):
return json.loads(urllib2.urlopen(('https://www.fmz.com/api/v1?access_key=%s&secret_key=%s&method=%s&args=%s' % (accessKey, secretKey, method, json.dumps(list(args)))).replace(' ', '')).read().decode('utf-8'))
# If APIKEY does not have the interface permission, the call to
print(api('RestartRobot', 186515)) will fail, and the returned data
is: {'code': 4, 'data': None}
# print(api('RestartRobot', 186515))
# Printed Id: the live trading details of 186515
print(api('GetRobotDetail', 186515))
package main
import (
"fmt"
"encoding/json"
"net/http"
"io/ioutil"
"net/url"
)
// Fill in your own FMZ platform api key
var apiKey string = "your access_key"
// Fill in your own FMZ platform secret key
var secretKey string = "your secret_key"
var baseApi string = "https://www.fmz.com/api/v1"
func api(method string, args ... interface{}) (ret interface{}) {
jsonStr, err := json.Marshal(args)
if err != nil {
panic(err)
}
params := map[string]string{
"access_key" : apiKey,
"secret_key" : secretKey,
"method" : method,
"args" : string(jsonStr),
}
// http request
client := &http.Client{}
// request
urlValue := url.Values{}
for k, v := range params {
urlValue.Add(k, v)
}
urlStr := urlValue.Encode()
request, err := http.NewRequest("GET", baseApi + "?" + urlStr, nil)
if err != nil {
panic(err)
}
resp, err := client.Do(request)
if err != nil {
panic(err)
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
ret = string(b)
return
}
func main() {
method := "GetRobotDetail"
fmt.Println("Call interface:", method)
ret := api(method, 186515)
fmt.Println("main ret:", ret)
}
Utilisez l'API étendue sur FMZ Quant pour réaliser l'alerte