是否还有其他人很难让Twitter的oAuth的回调URL到达他们的本地主机开发环境。显然,它已被禁用。http://code.google.com/p/twitter-api/issues/detail?id=534#c1
没有人有解决方法。我真的不想停止我的发展
是否还有其他人很难让Twitter的oAuth的回调URL到达他们的本地主机开发环境。显然,它已被禁用。http://code.google.com/p/twitter-api/issues/detail?id=534#c1
没有人有解决方法。我真的不想停止我的发展
Answers:
备选方案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 提供Twitter的回调http://localhost:8080
。
只需将http://127.0.0.1:xxxx/作为回调URL,其中xxxx是您的框架的端口
是的,由于最近在OAuth中发现了安全问题,因此已将其禁用。目前唯一的解决方案是创建两个OAuth应用程序-一个用于生产,一个用于开发。在开发应用程序中,您可以设置localhost回调URL而不是实时URL。
这是我的方法:
注册的回调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>
确保将项目的属性“使用动态端口”设置为“ false”,然后输入静态端口号。(我使用1066)。
我希望这有帮助!
它所做的是与127.0.0.1的简单DNS关联,使您可以绕过localhost或127.0.0.1上的过滤器:
smackaho.st。28800英寸A 127.0.0.1
因此,如果您单击链接,它将显示您在本地网络服务器上拥有的内容(如果没有,则将显示404)。您当然可以将其设置为所需的任何页面/端口:
我在本地主机上使用Twitter回调URL。如果不确定如何创建虚拟主机(这很重要),请使用Ampps。他真的很酷很轻松。在几个步骤中,您将拥有自己的虚拟主机,然后每个URL都可以在其上工作。例如:
下载并安装ampps
添加新域。(例如,您可以在此处设置twitter.local),这意味着您的虚拟主机将是http://twitter.local,并且它将在步骤3之后运行。
我正在Win上工作,因此转到您的主机文件-> C:\ Windows \ System32 \ Drivers \ etc \ hosts并添加以下行:127.0.0.1 twitter.local
重新启动Ampps,即可使用回调。您可以指定任何url,即使您正在使用某些框架MVC或具有htaccess url重写。
希望这个帮助!干杯。
在本地开发时,我总是设置一个本地托管的开发人员名称,以反映我正在从事的项目。我通过xampp \ apache \ conf \ extra \ httpd-vhosts.conf在xampp中进行设置,然后在\ Windows \ System32 \ drivers \ etc \ hosts中进行设置。
因此,如果要为example.com设置本地开发站点,则可以在这两个文件中将其设置为example.dev。
简短的回答:正确设置此网址后,您可以在设置Twitter应用程序时将其视为实时网址(而不是本地网址)(http://example.dev)。
这里给出了类似的答案:https : //dev.twitter.com/discussions/5749
直接报价(加强调):
您可以在应用程序详细信息页面上为任何有效的URL提供我们可以识别的域名。OAuth 1.0a要求您在流程的请求令牌步骤中发送oauth_callback值,我们将在该步骤中接受基于动态locahost的回调。
这对我来说就像是一种魅力。希望这可以帮助。
使用Fiddler可以很方便地完成它:
127.0.0.1 your-production-domain.com
,确保选中“启用请求的重新映射...”。不要忘记按Save。一个令人高兴的好处是您可以指定一个自定义端口,如下所示:(
127.0.0.1:3000 your-production-domain.com
不可能通过hosts文件实现此目的)。另外,您可以使用任何域名(例如localhost
)代替IP 。
这样,可以(但不是必需)仅注册一次Twitter应用程序(前提是您不介意使用相同的密钥进行本地开发和生产)。
在第180行的TwitterAPIExchange.php上编辑此函数
public function performRequest($return = true)
{
if (!is_bool($return))
{
throw new Exception('performRequest parameter must be true or false');
}
$header = array($this->buildAuthorizationHeader($this->oauth), 'Expect:');
$getfield = $this->getGetfield();
$postfields = $this->getPostfields();
$options = array(
CURLOPT_HTTPHEADER => $header,
CURLOPT_HEADER => false,
CURLOPT_URL => $this->url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false
);
if (!is_null($postfields))
{
$options[CURLOPT_POSTFIELDS] = $postfields;
}
else
{
if ($getfield !== '')
{
$options[CURLOPT_URL] .= $getfield;
}
}
$feed = curl_init();
curl_setopt_array($feed, $options);
$json = curl_exec($feed);
curl_close($feed);
if ($return) { return $json; }
}
我遇到了同样的挑战,但是我无法将localhost作为有效的回调URL。因此,我创建了一个简单的域来帮助我们的开发人员:https : //tolocalhost.com
它将任何路径重定向到所需的localhost域和端口。希望它可以对其他开发人员有用。
如今似乎http://127.0.0.1
也停止了工作。一个简单的解决方案是使用http://localtest.me
而不是http://localhost
始终指向127.0.0.1
它,甚至可以向其添加任意子域,并且它仍然指向127.0.0.1
查看网站
在twitter应用中设置callbackurl:127.0.0.1:3000并设置WEBrick绑定到127.0.0.1而不是0.0.0.0
命令:rails s -b 127.0.0.1
我为此苦苦挣扎,并遵循了十二种解决方案,最后,要使用本地主机上的任何ssl api,我要做的就是:
前往下载:cacert.pem文件
在php.ini
*取消注释和更改中:
curl.cainfo = "c:/wamp/bin/php/php5.5.12/cacert.pem"
php.ini
通过php --ini
在CLI中运行来找到文件在计算机上的位置这些步骤对我来说很有效,可让Facebook在笔记本电脑上使用本地应用程序: