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
誰にも回避策がありますか。開発を止めたくない
代替案 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
。
私は先週これをしなければなりませんでした。どうやらlocalhost
動作しませんが、127.0.0.1
Go は動作します。
もちろん、これは 2 つのアプリを Twitter に登録していることを前提としています。1 つはライブ用でwww.mysite.com
、もう1 つは127.0.0.1
.
コールバック URL としてhttp://127.0.0.1:xxxx/を入力するだけです。ここで、xxxx はフレームワークのポートです。
コールバック URL が編集されました
http://localhost:8585/logintwitter.aspx
に変換
http://127.0.0.1:8585/logintwitter.aspx
はい、OAuth で見つかった最近のセキュリティ問題により、無効になりました。現時点での唯一の解決策は、2 つの OAuth アプリケーションを作成することです。1 つは本番用、もう 1 つは開発用です。開発アプリケーションでは、ライブの代わりに localhost コールバック 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");
構成設定:
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を使用しました)。
これが役立つことを願っています!
それが行うことは、 localhost または 127.0.0.1 のフィルターをバイパスできるようにする 127.0.0.1 への単純な DNS 関連付けです。
smackaho.st。127.0.0.1 で 28800
したがって、リンクをクリックすると、ローカル Web サーバーにあるものが表示されます (ない場合は 404 が返されます)。もちろん、任意のページ/ポートに設定できます:
Fiddlerを使用すると、非常に便利に実行できます。
127.0.0.1 your-production-domain.com
「リクエストの再マッピングを有効にする...」がチェックされていることを確認します。を忘れずに押してくださいSave。うれしいボーナスは、次のようにカスタム ポートを指定できることです
127.0.0.1:3000 your-production-domain.com
(hosts ファイルを介してこれを実現することは不可能です)。また、IP の代わりに任意のドメイン名 (例: ) を使用できますlocalhost
。
このように、Twitter アプリを 1 回だけ登録することができます (必須ではありません) (ただし、ローカルでの開発と運用に同じキーを使用することを気にしない場合)。
この関数を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; }
}
Twitter では、設定に値がある限りlocalhost
、設定にあるものと一緒に使用できるようになりました。Callback URL
Twitter アプリで callbackurl を設定します: 127.0.0.1:3000 および 0.0.0.0 の代わりに 127.0.0.1 にバインドするように WEBrick を設定します
コマンド: rails s -b 127.0.0.1