Попытка OAuth в Twitter и вернуться к http://Localhost:port - PullRequest
7 голосов
/ 06 августа 2009

Я пытаюсь отправить OAuth в Twitter, а затем он возвращается на порт localhost: (например, http://localhost:6969).

Я также пытаюсь использовать Linq2Twitter. Когда я пытаюсь настроить приложение в Twitter, оно не позволяет мне установить

  1. Сайт приложения.
  2. Веб-сайт.
  3. URL обратного вызова.

будет http://localhost:6969

Итак, как я могу сделать твиттер OAuth для моей машины разработки localhost?

РЕДАКТИРОВАТЬ: я тайно надеюсь, AArnott найдет / прочитает этот пост:)

РЕДАКТИРОВАТЬ 2:

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

Так что, если это пример кода (не мой, кстати, но какой-то наемный пистолет, здесь на работе) для перенаправления на SP (который в данном случае это Twitter) ...

public void StartOAuthAuthorize()
{
    string link = twitterContext.GetAuthorizationPageLink(false, false);
    var uri = new Uri(link);
    NameValueCollection urlParams = HttpUtility.ParseQueryString(uri.Query);
    OAuthToken = urlParams["oauth_token"];

    HttpContext.Current.Session["twitterService"] = this;
    HttpContext.Current.Response.Redirect(link);
}

Это было бы место, где я бы угнал URL обратного вызова ....?

Ответы [ 2 ]

2 голосов
/ 26 ноября 2010

даже я получал ошибку 401 .. но она устранена .. во время регистрации приложения в твиттере вам нужно дать URL обратного вызова ... как http://localhost:8080.

Я сделал это, используя Java ... поэтому мой код: String CallbackURL = "http://localhost:8080/tweetproj/index.jsp"; provider.retrieveRequestToken (потребитель, CallbackURL);

где tweetproj - это имя моего проекта, а index.jsp - только одна страница jsp ...

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

2 голосов
/ 07 августа 2009

Ответ может вас удивить ...

Дайте Twitter любой URI обратного вызова, который он разрешает (вероятно, URL, который вы предполагаете использовать в рабочей среде) для вашей страницы регистрации клиента oauth.

Когда вы отправляете свой OAuth-запрос на токен, у вас есть возможность указать URL-адрес обратного вызова, который Twitter предпочтет использовать вместо этого. В это время вы можете указать localhost, и он отлично работает.

Поскольку вы используете LinqToTwitter, который внутренне использует DotNetOpenAuth, вам не нужно указывать «localhost», когда вы отправляете запрос на авторизацию для SP. DotNetOpenAuth автоматически видит, что вы находитесь на локальном хосте, и отправляет этот URI обратного вызова.

Обновление : и убедитесь, что у вас установлена ​​последняя версия LinqToTwitter (по крайней мере, набор изменений 56159 ... более поздний, чем выпуск v1.11). В противном случае вы используете OAuth 1.0, а Twitter игнорирует URL-адрес обратного вызова, отправленный в запросе авторизации для клиентов OAuth 1.0.

...