Twitter oAuth callbackUrl - разработка локального хоста - PullRequest
109 голосов
/ 29 апреля 2009

Кто-нибудь еще испытывает затруднения при получении URL обратного вызова Twitters oAuth, чтобы попасть в среду разработки localhost. Видимо это было отключено недавно. http://code.google.com/p/twitter-api/issues/detail?id=534#c1

Есть ли у кого-нибудь обходной путь? Я действительно не хочу останавливать свое развитие

Ответы [ 17 ]

133 голосов
/ 17 августа 2009

Альтернатива 1.

Настройте файл .hosts (Windows) или etc / hosts, чтобы указать действующему домену ваш локальный IP-адрес. такие как:

127.0.0.1 xyz.com

где xyz.com - ваш реальный домен.

Альтернатива 2.

Кроме того, статья дает совет по альтернативному использованию службы сокращения URL. Сократите свой локальный URL и предоставьте результат в качестве обратного вызова.

Альтернатива 3.

Кроме того, похоже, что он работает, например, для http://127.0.0.1:8080 обратного вызова в Twitter вместо http://localhost:8080.

27 голосов
/ 05 января 2010

Мне просто нужно было сделать это на прошлой неделе. Очевидно, localhost не работает, но 127.0.0.1 показывает значение Go.

Это, конечно, предполагает, что вы регистрируете два приложения в Твиттере, одно для вашего живого www.mysite.com, а другое для 127.0.0.1.

10 голосов
/ 25 февраля 2012

Просто укажите http://127.0.0.1:xxxx/ в качестве URL обратного вызова, где xxxx - это порт для вашей платформы

8 голосов
/ 29 декабря 2014

Отредактированный URL обратного вызова

http://localhost:8585/logintwitter.aspx

Конвертировать в

http://127.0.0.1:8585/logintwitter.aspx
7 голосов
/ 20 сентября 2011

Использование http://smackaho.st

То, что он делает, - это простая связь DNS с 127.0.0.1, которая позволяет обойти фильтры на локальном хосте или 127.0.0.1:

smackaho.st. 28800 В 127.0.0.1

Так что, если вы нажмете на ссылку, она покажет вам, что у вас есть на вашем локальном веб-сервере (и если у вас его нет, вы получите 404). Конечно, вы можете установить его на любую страницу / порт, который вы хотите:

http://smackaho.st:54878/twitter/callback

7 голосов
/ 09 мая 2011

Вот как я это сделал:

Зарегистрированный URL обратного вызова: http://127.0.0.1/Callback.aspx

   OAuthTokenResponse authorizationTokens = 
        OAuthUtility.GetRequestToken(ConfigSettings.getConsumerKey(), 
                                     ConfigSettings.getConsumerSecret(), 
                                     "http://127.0.0.1:1066/Twitter/Callback.aspx");

ConfigSettings:

public static class ConfigSettings
{
    public static String getConsumerKey()
    {
        return System.Configuration.ConfigurationManager.AppSettings["ConsumerKey"].ToString();
    }

    public static String getConsumerSecret()
    {
        return System.Configuration.ConfigurationManager.AppSettings["ConsumerSecret"].ToString();
    }

}

Web.config:

<appSettings>

    <add key="ConsumerKey" value="xxxxxxxxxxxxxxxxxxxx"/>
    <add key="ConsumerSecret" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>

</appSettings>

Убедитесь, что для свойства «use dynamic ports» вашего проекта установлено значение «false» и вместо этого введите статический номер порта. (Я использовал 1066).

Надеюсь, это поможет!

7 голосов
/ 03 мая 2009

Да, он был отключен из-за недавней проблемы безопасности, обнаруженной в OAuth. На данный момент единственным решением является создание двух приложений OAuth - одного для производства и одного для разработки. В приложении для разработки вы устанавливаете URL обратного вызова localhost вместо действующего.

5 голосов
/ 17 января 2014

Я работал с URL обратного вызова Twitter на моем локальном хосте. Если вы не уверены, как создать виртуальный хост (это важно), используйте Ampps. Он действительно классный и легкий. Через несколько шагов у вас будет свой виртуальный хост, и тогда каждый URL будет работать на нем. Например:

  1. скачать и установить ampps

  2. Добавить новый домен. (здесь вы можете установить, например, twitter.local), это означает, что ваш виртуальный хост будет http://twitter.local и будет работать после шага 3.

  3. Я работаю над Win, поэтому зайдите в ваш файл хоста -> C: \ Windows \ System32 \ Drivers \ etc \ hosts и добавьте строку: 127.0.0.1 twitter.local

Перезапустите Ampps, и вы сможете использовать обратный вызов. Вы можете указать любой URL, даже если вы используете какой-то фреймворк MVC или у вас htaccess переписывает URL.

Надеюсь, это поможет! Приветствия.

3 голосов
/ 23 мая 2013

Когда я развиваюсь локально, я всегда устанавливаю локально размещенное имя разработчика, которое отражает проект, над которым я работаю. Я установил это в xampp через xampp \ apache \ conf \ extra \ httpd-vhosts.conf, а затем также в \ Windows \ System32 \ drivers \ etc \ hosts.

Так что, если я настраиваю локальный сайт разработчика для example.com, я бы настроил его как example.dev в этих двух файлах.

Краткий ответ: Как только это настроено правильно, вы можете просто обращаться с этим URL (http://example.dev)), как если бы он был живым (а не локальным) при настройке приложения Twitter.

Аналогичный ответ был дан здесь: https://dev.twitter.com/discussions/5749

Прямая цитата (выделение добавлено):

Вы можете предоставить любой действительный URL с именем домена, которое мы узнаем на Страница сведений о приложении. OAuth 1.0a требует от вас отправить Значение oauth_callback на шаге токена запроса и мы будем принять динамический обратный вызов на основе locahost на этом шаге .

Для меня это сработало. Надеюсь, это поможет.

3 голосов
/ 13 августа 2014

Это можно сделать очень удобно с Fiddler :

  • Открыть меню Инструменты> ХОСТЫ ...
  • Вставьте строку наподобие 127.0.0.1 your-production-domain.com, убедитесь, что установлен флажок «Включить повторное отображение запросов ...». Не забудьте нажать Сохранить .
  • Если необходим доступ к вашему реальному производственному серверу, просто выйдите из Fiddler или отключите переназначение.
  • Повторный запуск Fiddler включит переназначение (если оно отмечено).

Приятным бонусом является то, что вы можете указать собственный порт, например так: 127.0.0.1:3000 your-production-domain.com (было бы невозможно добиться этого через файл hosts). Также вместо IP вы можете использовать любое доменное имя (например, localhost).

Таким образом, можно (но не обязательно) зарегистрировать ваше приложение Twitter только один раз (при условии, что вы не возражаете против использования тех же ключей для локальной разработки и производства).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...