2017-03-27 11 views
9

अजगर Coinbase का उपयोग API-- functions-- get_buy_price, get_sell_price, get_spot_price, get_historical_data, आदि ... सब केवल कीमतों Bitcoin लौटने के लिए लग रहे हैं। Ethereum कीमतों की पूछताछ का कोई तरीका है?ऐतिहासिक etherium कीमतों - Coinbase एपीआई

ऐसा लगता है कि currency_pair = 'BTC-USD' को currency_pair = 'ETH-USD' जैसा कुछ भी बदला जा सकता है हालांकि इसका कोई प्रभाव नहीं पड़ता है।

रहा है कि एपीआई बस इस समर्थन नहीं करता है, सिवाय इसके कि स्पष्ट रूप से कहा आधिकारिक दस्तावेज उम्मीद होती है:

कुल कीमत एक Bitcoin या आकाश खरीदना चाहता

रहा काम कर सकते हैं जाओ खरीद/बिक्री अनुरोध में quote='true' ध्वज का उपयोग करके कुछ हद तक। हालांकि यह आगे बढ़ता काम करता है, मुझे ऐतिहासिक डेटा चाहिए।

उत्तर

13

source code हमेशा आपका मित्र होगा।

def get_spot_price(self, **params): 
    """https://developers.coinbase.com/api/v2#get-spot-price""" 
    if 'currency_pair' in params: 
     currency_pair = params['currency_pair'] 
    else: 
     currency_pair = 'BTC-USD' 
    response = self._get('v2', 'prices', currency_pair, 'spot', data=params) 
    return self._make_api_object(response, APIObject) 

def get_historic_prices(self, **params): 
    """https://developers.coinbase.com/api/v2#get-historic-prices""" 
    response = self._get('v2', 'prices', 'historic', data=params) 
    return self._make_api_object(response, APIObject) 

हम देख सकते हैं कि दोनों कार्य एक ही एपीआई एंडपॉइंट कहते हैं। हम देखते हैं कि get_spot_pricecurrency_pair तर्क का समर्थन करता है और इसे एपीआई कॉल के हिस्से के रूप में पास करता है। दूसरी ओर get_historic_prices नहीं है।

मुझे आश्चर्य है कि अगर ऐसा होता तो क्या होगा। आइए इसे आज़माएं:

from coinbase.wallet.client import Client 
from coinbase.wallet.model import APIObject 

client = Client(api_key, api_secret) 
client._make_api_object(client._get('v2', 'prices', 'ETH-USD', 'historic'), APIObject) 


<APIObject @ 0x10dd04938> { 
    "currency": "USD", 
    "prices": [ 
     { 
      "price": "52.60", 
      "time": "2017-03-30T17:03:48Z" 
     }, 
     { 
      "price": "52.60", 
      "time": "2017-03-30T17:03:38Z" 
     }, 
     { 
      "price": "52.54", 
      "time": "2017-03-30T17:03:28Z" 
     }, 
     { 
      "price": "52.54", 
      "time": "2017-03-30T17:03:18Z" 
     }, 
     { 
      "price": "52.54", 
      "time": "2017-03-30T17:03:08Z" 
     }, 
     { 
      "price": "52.53", 
      "time": "2017-03-30T17:02:58Z" 
     }, 
     { 
      "price": "52.53", 
      "time": "2017-03-30T17:02:48Z" 
     }, 
     { 
      "price": "52.53", 
      "time": "2017-03-30T17:02:38Z" 
     }, 
     { 
      "price": "52.53", 
      "time": "2017-03-30T17:02:28Z" 
     }, 
     ..... 

सफलता!

मैं एक पीआर अपना रास्ता भेजूंगा। लेकिन अभी के लिए आप मेरे कोड स्निपेट का उपयोग कर सकते हैं।


PR submitted

+0

@ सैम, ऐतिहासिक डेटा को छोड़कर सभी विधियों को पहले से ही मुद्रा जोड़ी के साथ काम करना चाहिए। अगर वे काम नहीं कर रहे हैं, तो आपको सिक्काबेस साइट पर अपनी प्रोफाइल पर अपना एपीआई संस्करण अपडेट करना होगा और यह भी सुनिश्चित करें कि आप अपने कोड –

+0

से पुराने एपीआई संस्करण के लिए नहीं पूछ रहे हैं, मुझे पायथन नहीं पता, मैं आईओएस डेवलपर हूं, मूल रूप से मैं डेटा लाने और डेटा पार्स करने के लिए यूआरएल का उपयोग करें। क्या आप कृपया मुझे इस ऐतिहासिक डेटा के लिए यूआरएल दे सकते हैं, अंत में आपका प्रोग्राम डेटा लाने के लिए यूआरएल उत्पन्न कर रहा है। Thx .. i –

4

मैं इस कोशिश की और समस्या यह है कि 'ऐतिहासिक' पैरामीटर के साथ मिलकर एक 'currency_pair' पैरामीटर का उपयोग केवल पिछले कुछ दिनों के लिए 1 सेकंड विस्तृत रूप से एक इतिहास का उत्पादन करेगा था।

स्थापित GDAX अजगर ग्राहक:

pip install gdax 

तो फिर तुम सार्वजनिक एपीआई भाग का उपयोग कर सकते हैं यहां तक ​​कि एक GDAX खाता बिना

मैं इस बजाय GDAX ग्राहक API का उपयोग करके एक साथ GDAX Python client के साथ हल, :

import gdax 

client = gdax.PublicClient() 
client.get_product_historic_rates('ETH-USD', granularity=60*60*24) 

उपलब्ध उत्पादों (cryptocurrency/फिएट मुद्रा जोड़े) की एक सूची प्राप्त करने के लिए,

का उपयोग
client.get_products() 

और आईडी प्रविष्टियों के लिए स्कैन करें।

0

विनिमय दर को कॉल करने वाली एक ही समस्या के साथ मेरे लिए कुछ काम किया।

सिक्काबेस \ वॉलेट \ क्लाइंट में पैरा को बदलने का प्रयास करें।py

से

प्रतिक्रिया = self._get (वी 2 ',' कीमतों ',' धब्बा ', डेटा = params)

जवाबी कार्रवाई के लिए

= self._get ('v2', 'कीमतें', 'स्पॉट', पैराम्स = पैराम्स)

संबंधित मुद्दे