Twitters oAuthのコールバックURLを取得してlocalhost開発環境にアクセスするのに苦労している人はいますか?どうやら最近無効になっているようです。http://code.google.com/p/twitter-api/issues/detail?id=534#c1
誰かが回避策を持っていますか?開発を止めたくない
Twitters oAuthのコールバックURLを取得してlocalhost開発環境にアクセスするのに苦労している人はいますか?どうやら最近無効になっているようです。http://code.google.com/p/twitter-api/issues/detail?id=534#c1
誰かが回避策を持っていますか?開発を止めたくない
回答:
代替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
。
コールバックURLとしてhttp://127.0.0.1:xxxx/を入力するだけです。ここで、xxxxはフレームワークのポートです
はい、OAuthで見つかった最近のセキュリティ問題のため、無効になりました。現時点での唯一のソリューションは、本番用と開発用の2つのOAuthアプリケーションを作成することです。開発アプリケーションでは、ライブのものではなくローカルホストのコールバック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のフィルターをバイパスできる127.0.0.1への単純なDNSアソシエーションです。
smackaho.st。287.0 IN A 127.0.0.1
そのため、リンクをクリックすると、ローカルWebサーバーにあるものが表示されます(Webサーバーがない場合は、404が表示されます)。もちろん、任意のページ/ポートに設定できます。
私は自分のlocalhostで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を再起動すると、コールバックを使用できます。フレームワークMVCを使用している場合や、htaccess urlを書き換えている場合でも、任意のURLを指定できます。
このヘルプを願っています!乾杯。
ローカルで開発するときは、自分が取り組んでいるプロジェクトを反映するローカルでホストされた開発者名を常に設定します。これをxampp \ apache \ conf \ extra \ httpd-vhosts.confからxamppに設定し、さらに\ Windows \ System32 \ drivers \ etc \ hostsにも設定しました。
したがって、example.comのローカル開発サイトを設定する場合、これら2つのファイルでexample.devとして設定します。
短い回答:これが適切に設定されたら、Twitterアプリケーションを設定するときに、このURL(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ファイルを使用してこれを実現することは不可能です)。また、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; }
}
同じ問題があり、localhostを有効なコールバックURLとして指定できませんでした。そこで、開発者を助けるためのシンプルなドメインを作成しました:https : //tolocalhost.com
必要なローカルホストのドメインとポートへのパスをリダイレクトします。他の開発者にも役立つことを願っています。
私はこれに苦労し、12の解決策に従いましたが、ローカルホスト上の任意のssl apiを操作するために私がしなければならなかったすべては次のとおりでした。
ダウンロード:cacert.pemファイル
中php.ini
*アンコメントと変更:
curl.cainfo = "c:/wamp/bin/php/php5.5.12/cacert.pem"
php.ini
実行php --ini
することにより、マシン上のファイルの場所を見つけることができます以下は、Facebookを私のラップトップ上のローカルアプリケーションで動作させるために機能した手順です。