Вернуться   Биткоин Форум > - Помощь начинающим
28 апреля 2013, 3:11:48 PM   # 1
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Проблемы с подключением к MtGox API 2 с Python

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Эй, ребята, я пишу торговую программу, что мне нужно для подключения к MtGox через API v2. Но я получаю следующее сообщение об ошибке:
URL: https://data.mtgox.com/api/2/BTCUSD/money/bitcoin/address
Ошибка HTTP 403: Forbidden


Я связался с MtGox, чтобы убедиться, что мой счет имеет надлежащий доступ к API, и это делает. Я создал несколько различных ключи API, так что я знаю, что я использую правильный ключ + секретную комбинацию. Одноразовое значение генерируется из текущего времени, так что я знаю, что все большее временное значение. Я относительно уверен, ни один из этих пунктов не является проблемой.

Я получил мой питон скрипт:
http://pastebin.com/aXQfULyq

Я изменил код, что немного, чтобы соответствовать Python 3.3. Тем не менее, я должен был создать «Rest-Знак» несколько иной, чем в приведенном выше коде. Вот что у меня есть:
Код:
                    URL = само .__ url_parts + 2 / '+ путь
                    api2postdatatohash = (путь + CHR (0) + post_data) .encode ( 'UTF-8') #new способ хэширования для API 2, включает в себя путь + NUL
                    ahmac = base64.b64encode (ул (hmac.new (base64.b64decode (self.secret), api2postdatatohash, hashlib.sha512) .digest ()). кодировать ( 'UTF-8'))
               
                    # Создать заголовок для AUTH требующих операций
                    заголовок = {
                         "User-Agent": 'Arbitrater',
                         "Rest-Key": Self.key,
                         "Rest-Sign": ahmac
                    }

Для сравнения, вот что другой парень был:
Код:

                    URL = само .__ url_parts + 2 / '+ путь
                    api2postdatatohash = путь + CHR (0) + post_data #new способ хэширования для API 2, включает в себя путь + NUL
                    ahmac = base64.b64encode (ул (hmac.new (base64.b64decode (self.secret), api2postdatatohash, hashlib.sha512) .digest ()))
               
                    # Создать заголовок для AUTH требующих операций
                    заголовок = {
                         "User-Agent": 'GenBTC-бот',
                          "Rest-Key": Self.key,
                         "Rest-Sign": ahmac
                    }

Обратите внимание на то, как в моем коде, я имел, я должен был кодировать свою строку в UTF-8? Я интересно, если это то, что вызывает у меня, чтобы получить эту запрещенную ошибку. Я не знаю, как другой парень ушел без изменения в UTF-8, потому что сценарий не будет работать, если вы пытаетесь передать строку в b64encode или HMAC.

Кто-нибудь увидеть, что я делаю неправильно? Кто-нибудь из вас, ребята, была такая же проблема? Любая помощь приветствуется. Вот мой полный питон скрипт, если это полезно:
http://pastebin.com/9fY8Jv15
chops228 сейчас офлайн Пожаловаться на chops228   Ответить с цитированием Мультицитирование сообщения от chops228 Быстрый ответ на сообщение chops228


Как заработать Биткоины?
Без вложений. Не майнинг.


28 апреля 2013, 7:20:54 PM   # 2
 
 
Сообщений: 12
Цитировать по имени
цитировать ответ
по умолчанию Re: Проблемы с подключением к MtGox API 2 с Python

Получил 1806 Биткоинов
Реальная история.





Другой парень, скорее всего, с помощью Python 2.7 (или ниже), где ул означает байт строку, а не Unicode строку, как в Python 3.3.

Если бы я тебя, я бы попытаться изменить НТР () в байтах () и удалить закодировать () в конце.

Там уже другие части логики Идента, что вы не показали в своем коде, хотя (и те, кто может быть неправильно) - например, у вас есть монотонно возрастающий в одноразовом номер почтового сообщения? Является ли URL-закодирован пост сообщение?
martinkou сейчас офлайн Пожаловаться на martinkou   Ответить с цитированием Мультицитирование сообщения от martinkou Быстрый ответ на сообщение martinkou

28 апреля 2013, 7:49:25 PM   # 3
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Проблемы с подключением к MtGox API 2 с Python

Я попытался изменить ул () в байтах () и удаление закодировать в конце:

Код:
                   
                    URL = само .__ url_parts + 2 / '+ путь
                    api2postdatatohash = (путь + CHR (0) + post_data) .encode ( 'UTF-8') #new способ хэширования для API 2, включает в себя путь + NUL
                   
                    ahmac = base64.b64encode (байт (hmac.new (base64.b64decode (self.secret), api2postdatatohash, hashlib.sha512) .digest ()))

Но нет кости. Вот api2postdatatohash ', где я помещаю в возрастающем нонсе, который генерируется:

Код:
                   нонс = ул (интермедиат (time.time () * 1000)) + "000"
                   PARAMS + = [(u'nonce», Nonce)] # обратите внимание, Params пуст в этой точке, так что он просто содержит одноразовый номер
                   post_data = urllib.parse.urlencode (PARAMS)

                   #So в конце концов, что делает нонс свой путь к «api2postdatatohash»
                   #Path страница апи Я пытаюсь подключиться. В этом случае https://data.mtgox.com/api/2/BTCUSD/money/bitcoin/address
                   api2postdatatohash = (путь + CHR (0) + post_data) .encode ( 'UTF-8')


Таким образом, чтобы ответить на ваш вопрос, я уверен, что я сгенерировал все большее временное значение, а затем URL-адрес кодирования его правильно. Значит ли это смотреть прямо на вас?
chops228 сейчас офлайн Пожаловаться на chops228   Ответить с цитированием Мультицитирование сообщения от chops228 Быстрый ответ на сообщение chops228

29 апреля 2013, 1:35:45 AM   # 4
 
 
Сообщений: 12
Цитировать по имени
цитировать ответ
по умолчанию Re: Проблемы с подключением к MtGox API 2 с Python

Я не могу определить какие-либо ошибки, кроме того вы, кажется, смешиваясь Python 2.x с синтаксисом 3.x Python (и-"" вещь принадлежит 2.x, все строки автоматически юникод в 3.x). HMAC и почтовые данные должны быть все правильно. Я думал, что CHR (0), может испортить закодировать Питон ("UTF-8"), Но это не так.

Что вы используете, чтобы отправить запрос с? urllib.request.Request? Unlink Python 2.x, тем urlopen () в Python 3.x не представляет свои заголовки, вам нужно использовать конструктор запроса вместо. Так что если вы копируете код из людей, использующих Python 2.x, вы можете в конечном итоге не Предоставляя свои заголовки на всех.
martinkou сейчас офлайн Пожаловаться на martinkou   Ответить с цитированием Мультицитирование сообщения от martinkou Быстрый ответ на сообщение martinkou



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW