Проблемы с локальными биткойнами api pagination на nodejs - PullRequest
1 голос
/ 22 февраля 2020

Я разрабатываю с помощью LocalBitcoins API, используя nodejs. Вот код

const adsList = async (action, options = {}, page) => {
    let prefix = action + '-'

    let countryCode = (options.countryCode) ? options.countryCode : false
    let countryName = (options.countryName) ? options.countryName : false
    let paymentMethod = (options.paymentMethod) ? options.paymentMethod : false
    let currency = (options.currency) ? options.currency : false

    let basePath = prefix + 'bitcoins-online'
    let suffix = (page > 1) ? `.json?page=2` : '.json'

    let path

    if (currency) {
        path = (paymentMethod) ? `${basePath}/${currency}/${paymentMethod}/${suffix}` : `${basePath}/${currency}/${suffix}`
    } else if (countryCode && countryName) {
        path = (paymentMethod) ? `${basePath}/${countryCode}/${countryName}/${paymentMethod}/${suffix}` : `${basePath}/${countryCode}/${countryName}/${suffix}`
    } else if (!currency && !countryCode && !countryName) {
        path = (paymentMethod) ? `${basePath}/${paymentMethod}/${suffix}` : `${basePath}/${suffix}`
    }

    let response = await get(path, true)

    return response
}

Теперь, когда я звоню без указания страницы, все работает нормально.

adsList('sell', {
  countryCode: 'co',
  countryName: 'colombia'
}).then(response => {
  console.log(response)
})

Вывод:

{
  pagination: {
    next: 'https://localbitcoins.com/sell-bitcoins-online/co/colombia/.json?page=2'
  },
  data: {
    ad_list: [
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object]
    ],
    ad_count: 50
  }
}

Ах, но когда я добавляю страницу:

adsList('sell', {
  countryCode: 'co',
  countryName: 'colombia'
}, 2).then(response => {
  console.log(response)
})

Это вывод:

{
  error: {
    message: 'HMAC authentication key and signature was given, but they are invalid.',
    error_code: 41
  }
}

Я работал над этим часами, но искал информацию, но ничего не было, так что если вы есть какое-то решение, я буду благодарен.

...