2016-04-02 5 views
1

У меня очень мало опыта работы с API, что я пытаюсь изменить, поэтому я пытаюсь начать работу с Tumblr api. Я установил драгоценный камень tumblr_client (documentation here) и следую инструкциям. Я создал приложение на новой учетной записи Tumblr и имею необходимую информацию OAuth (consumer_key, consumer_secret и т. Д.). Фактически заставить его что-то делать сложно, так что, как хороший маленький программист, я пытаюсь запустить консоль изучить немного.Невозможно получить консоль irb, работающую с камнем tumblr_client

Это требует немного установки, поэтому я, следуя инструкции здесь:

Первый раз, когда вы идете использовать IRB консоли, если у вас нет .tumblr файла, он будет ходить вы через процесс его создания. Вам будет предложено указать ваши потребительские_и_и_потребители (которые вы можете получить здесь: http://www.tumblr.com/oauth/register), а затем отправили на сайт, чтобы подтвердить свою учетную запись. Как только вы подтвердите, вы будете перенаправлены на ваш URL-адрес переадресации (по умолчанию localhost) и скопируйте oauth_verifier обратно в консоль. Тогда вы все настроены!

Мне подскажут мой ключ и секрет, затем я перехожу к URL-адресу, где я должен дать разрешение. Tumblr дает мне всплывающее окно, в котором говорится: «Это нормально для этого приложения, чтобы получить доступ к некоторым вашим данным и сделать сообщения в вашей учетной записи? Вы вошли в систему как [email protected]» и варианты отмены или разрешения. Я нажимаю «Разрешить», и он просто забирает меня в учетную запись, ни в коем случае я не даю какой-либо код проверки, который я могу включить, чтобы заставить консоль работать.

На данный момент я застрял и не могу идти дальше, поэтому я активирую сеть. Любые идеи относительно того, где я ошибаюсь?

ответ

1

Вы указали URL-адрес перенаправления или обратного вызова в любой момент процесса конфигурации oauth? Вероятно, это сделано на веб-сайте API Tumblr. Этот URL-адрес будет конечной точкой вашего приложения, на которую Tumblr отправляет запрос с данными пользователя. Кстати, oauth иногда может смешивать настройку. Вы не сможете использовать localhost в качестве URL-адреса обратного вызова, например, хотя вы можете получить временное доменное имя с бесплатным локальным туннелирующим приложением.

редактировать Чтобы перейти в более подробно на некоторых из этих пунктов ...

  • обратного вызова URL: Для того, чтобы подтвердить, что это не может быть локальный. Установка правильного URL-адреса обратного вызова заставит вас отклеиваться от вашего текущего затруднительного положения. Вместо перенаправления на главную страницу tumblr вы хотите перенаправить страницу подтверждения на свое приложение. Во всяком случае, я думаю, вы совершенно разумны, чтобы протестировать его перед развертыванием. Но если вы не развертываете или не используете локальный туннель, ваше локальное приложение фактически не имеет URL-адреса, доступ к которым можно получить из любого места, кроме компьютера.
  • местные услуги туннелирования: ngrok, localtunnel. Чтобы привести пример с ngrok: скажем, у вас есть сервер Rails, запущенный на порту 3000. Затем в другом терминале вы запускаете ngrok 3000 и получаете URL-адрес, который предоставляет ваш локальный сервер в реальном интернет. Обратите внимание, что это изменяется при каждом перезапуске ngrok (если вы не платите). В вашем приложении вы должны создать уникальный маршрут для обратного вызова. Скажем, у вас есть маршрут, который соответствует /oauth_callback, на действие контроллера oauth_callback. Тогда маршрут, который вы укажете в качестве URL-адреса обратного вызова, будет http://MY_CUSTOM_NAME.ngrok.com/oauth_callback.
  • Действие контроллера: Я не знаю, как Tumblr отправляет пользовательские данные в обратный вызов. Возможно, информация находится в заголовках или, может быть, в теле. Это может быть JSON или XML. Как бы то ни было, вы можете исследовать данные, поставив контрольную точку в действие вашего контроллера. Вы можете проверить params, headers и т. Д. Я бы ожидал, что они дадут вам некоторые учетные данные маркера и, вероятно, имя пользователя/адрес электронной почты.
+0

Я понимаю, что вы сказали, в основном часть о том, что OAuth смешивается :). Tumblr запрашивает «веб-сайт приложения», который я установил для localhost, и «URL-адрес обратного вызова по умолчанию», который я установил для косой черты, не имеющей представления о том, что еще нужно делать. Кажется, что Tumblr ожидает, что у вас уже развернуто и запущено приложение, прежде чем вы сможете что-либо сделать с их API, что мне кажется сложным. Я никогда не слышал о локальных приложениях туннелирования, вы можете уточнить и, возможно, указать мне в сторону хорошего (или хорошего учебника?) О, и спасибо, я ценю вашу помощь. –

+0

@JonathonNordquist см. Обновленный ответ и дайте мне знать, если у вас возникнут дополнительные вопросы. –

+0

Макс, дополнительная информация была удивительно полезна. Вы простите меня, если я буду похоть на школьницу, но OMG! Это. Так. Круто! Я понятия не имел, что подобные услуги даже существуют, а тем более как их использовать. Это отличный инструмент для моего пояса, вы не только помогли решить мою проблему, но и сделали меня лучшим разработчиком. Если вы когда-нибудь на Среднем Западе, бросьте мне линию, и я куплю вам пиво. –

Смежные вопросы