Поддерживает ли Twitter OAuth параметры queryString, содержащие пробелы в URL-адресе callBack? - PullRequest
4 голосов
/ 23 июля 2010

Для справочной информации, я использую TweetSharp 1.0, чтобы сделать твит.URL-адреса обратного вызова принимаются независимо от того, содержат ли они параметр querystring (CallbackConfirmed имеет значение true), но они не перенаправляются при авторизации, если содержат параметр querystring.Они отправляются в твиттер, выглядя отлично и модно (пример: http://api.twitter.com/oauth/authorize?oauth_token=MYTOKENREMOVED&oauth_callback=http://www.mywebsite.co.uk?q=Woop%20Woop), но когда твиттер должен перенаправить на URL обратного вызова, он просто перенаправляет их на twitter.com.

Похоже, это только происходиткогда я использую пробелы в URL обратного вызова - oauth_callback = http://www.mywebsite.co.uk? q = Woop_Woop работает, тогда как oauth_callback = http://www.mywebsite.co.uk? q = Woop% 20Woop не работает.

Ответы [ 2 ]

4 голосов
/ 23 июля 2010

Любые параметры строки запроса, которые вы указываете, должны быть в кодировке URL. Пробелы должны становиться «+», а не% 20 (Server.UrlEncode выполнит эту работу в .NET). % 20 отличается от + , поэтому oauth_callback = http://www.mywebsite.co.uk? Q = Woop% 20Woop должно стать: oauth_callback = http://www.mywebsite.co.uk? Q = Woop + Woop

Кроме того ... Server.UrlEncode не будет работать, потому что «шестнадцатеричные символы в кодировках ДОЛЖНЫ быть в верхнем регистре» (см. Раздел 5.1 из http://oauth.net/core/1.0/), а C # - в нижнем регистре. Я считаю, что JavaScript также кодирует в нижнем а не в верхнем регистре. Для C # быстрое решение проблемы кодирования в нижнем регистре можно найти по адресу: .net UrlEncode - проблема в нижнем регистре

0 голосов
/ 16 февраля 2016

По какой-то причине я так и не смог заставить это работать. Но для тех, кто находится в такой же ситуации, прежде чем часами биться головой об стену, обратите внимание, что вы, вероятно, можете добиться того же эффекта, используя файлы cookie или сеанс вместо параметров строки запроса. (Если, конечно, это не варианты)

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