是否有其他人很难获得Twitters oAuth的回调网址来访问他们的localhost开发环境。 显然它最近被禁用了。 http://code.google.com/p/twitter-api/issues/detail?id=534#c1
有没有人有解决方法。我真的不想停止我的发展
答案 0 :(得分:133)
备选方案1。
设置.hosts(Windows)或etc / hosts文件,将实时域指向localhost IP。如:
127.0.0.1 xyz.com
其中xyz.com是您的真实域名。
备选方案2。
此外,本文还给出了提示,或者使用URL缩短服务。缩短您的本地URL并将结果作为回调提供。
备选方案3。
此外,它似乎可以提供例如http://127.0.0.1:8080
作为Twitter的回调,而不是http://localhost:8080
。
答案 1 :(得分:27)
我上周必须这样做。显然localhost
不起作用,但127.0.0.1
确实如此。
这当然假设您在Twitter上注册了两个应用程序,一个用于您的实时www.mysite.com
,另一个用于127.0.0.1
。
答案 2 :(得分:10)
只需将http://127.0.0.1:xxxx/作为回调网址,其中xxxx是您框架的端口
答案 3 :(得分:8)
编辑回调网址
http://localhost:8585/logintwitter.aspx
转换为
http://127.0.0.1:8585/logintwitter.aspx
答案 4 :(得分:7)
我就这样做了:
已注册的回拨网址: 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)。
我希望这有帮助!
答案 5 :(得分:7)
它的作用是与127.0.0.1的简单DNS关联,它允许您绕过localhost或127.0.0.1上的过滤器:
smackaho.st。 28800 IN A 127.0.0.1
因此,如果您点击该链接,它将显示您在本地网络服务器上的内容(如果您没有,则会获得404)。您当然可以将其设置为您想要的任何页面/端口:
答案 6 :(得分:7)
是的,由于最近在OAuth中发现的安全问题,它已被禁用。目前唯一的解决方案是创建两个OAuth应用程序 - 一个用于生产,一个用于开发。在开发应用程序中,您可以设置localhost回调URL而不是实时URL。
答案 7 :(得分:5)
我正在使用我的localhost上的Twitter回调网址。如果您不确定如何创建虚拟主机(这很重要),请使用Ampps。他真的很酷很容易。在几个步骤中,您拥有自己的虚拟主机,然后每个URL都可以使用它。例如:
下载并安装ampps
添加新域名。 (这里你可以设置例如twitter.local),这意味着你的虚拟主机将是http://twitter.local,它将在第3步之后运行。
我正在开发Win,所以请转到主机文件 - &gt; C:\ Windows \ System32 \ Drivers \ etc \ hosts并添加行:127.0.0.1 twitter.local
重新启动你的Ampps,你可以使用你的回调。你可以指定任何url,即使你正在使用某个框架MVC或你有htaccess url重写。
希望这个帮助! 欢呼声。
答案 8 :(得分:3)
当我在本地开发时,我总是设置一个本地托管的开发名称,它反映了我正在进行的项目。我在xampp中通过xampp \ apache \ conf \ extra \ httpd-vhosts.conf然后在\ Windows \ System32 \ drivers \ etc \ hosts中设置了它。
因此,如果我为example.com设置本地开发站点,我会在这两个文件中将其设置为example.dev。
简答:一旦设置正确,您可以在设置Twitter应用时将此网址(http://example.dev)视为实时(而非本地)
这里给出了类似的答案:https://dev.twitter.com/discussions/5749
直接引用(强调添加):
您可以提供任何有效的网址,其中包含我们在网站上识别的域名 申请详情页面。 OAuth 1.0a要求您发送 oauth_callback值在流的请求令牌步骤和我们将 在该步骤上接受动态的基于locahost的回调。
这对我来说就像一个魅力。希望这会有所帮助。
答案 9 :(得分:3)
使用Fiddler:
可以非常方便地完成127.0.0.1 your-production-domain.com
之类的行,确保选中“启用重新映射请求...”。不要忘记按 保存 。一个令人愉快的好处是你可以指定一个自定义端口,如下所示:
127.0.0.1:3000 your-production-domain.com
(通过hosts文件实现这一点是不可能的)。此外,您可以使用任何域名(例如localhost
)代替IP。
这样,可以(但不是必须)只注册一次您的Twitter应用程序(假设您不介意使用相同的密钥进行本地开发和生产)。
答案 10 :(得分:2)
如今http://127.0.0.1
似乎也停止了工作。
一个简单的解决方案是使用http://localtest.me
而不是http://localhost
,它总是指向127.0.0.1
,甚至可以向其中添加任意子域,它仍然指向127.0.0.1
请参见Website
答案 11 :(得分:2)
我遇到了同样的挑战,我无法将localhost作为有效的回调网址。所以我创建了一个简单的域来帮助开发人员: https://tolocalhost.com
它会将任何路径重定向到您需要的localhost域和端口。希望它对其他开发者有用。
答案 12 :(得分:2)
在 TwitterAPIExchange.php 上#180
<编辑此功能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; }
}
答案 13 :(得分:1)
看起来Twitter现在允许localhost
以及Callback URL
设置中的任何内容,只要那里有值。
答案 14 :(得分:1)
我为此努力并遵循了十几个解决方案,最后我必须做的就是在本地主机上使用任何ssl apis:
在php.ini
*取消评论和更改:
curl.cainfo = "c:/wamp/bin/php/php5.5.12/cacert.pem"
php.ini
来查找计算机上php --ini
文件的位置答案 15 :(得分:1)
这些步骤让我能够让Facebook在笔记本电脑上使用本地应用程序:
答案 16 :(得分:1)
在twitter app中设置callbackurl:127.0.0.1:3000 并将WEBrick设置为绑定在127.0.0.1而不是0.0.0.0
命令:rails s -b 127.0.0.1