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 figureを実行します。
もちろん、2つのアプリをTwitterに登録していることを前提としています。1つはライブwww.mysite.com
と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
これは私がそれをやった方法です:
登録済みコールバック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を使用しました)。
これがお役に立てば幸いです!
はい、OAuthで見つかった最近のセキュリティ問題のために無効にされました。現時点での唯一の解決策は、2つのOAuthアプリケーションを作成することです。1つは実稼働用、もう1つは開発用です。開発用アプリケーションでは、ライブコールバックURLではなくlocalhostコールバックURLを設定します。
http://smackaho.st を使用します
127.0.0.1への単純なDNSアソシエーションにより、localhostまたは127.0.0.1のフィルターをバイパスできます。
smackaho.st。 28800 IN A 127.0.0.1
リンクをクリックすると、ローカルWebサーバーにあるものが表示されます(リンクがない場合は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を再起動すると、コールバックを使用できます。フレームワークMVCを使用している場合や、htaccess urlを書き換えている場合でも、任意のURLを指定できます。
このヘルプを願っています!乾杯。
Fiddler を使用すると非常に便利です。
127.0.0.1 your-production-domain.com
のような行を挿入し、「リクエストの再マッピングを有効にする...」がチェックされていることを確認します。押すことを忘れないでください Save。楽しいボーナスは、次のようなカスタムポートを指定できることです:127.0.0.1:3000 your-production-domain.com
(hostsファイルを介してこれを達成することは不可能です)。また、IPの代わりに、任意のドメイン名(たとえば、localhost
)を使用できます。
この方法では、Twitterアプリを1回だけ登録できます(ただし、ローカルの開発と本番で同じキーを使用してもかまいません)。
ローカルで開発するときは、作業中のプロジェクトを反映するローカルでホストされる開発者名を常に設定します。これをxampp\Apache\conf\extra\httpd-vhosts.confを介してxamppに設定し、さらに\ Windows\System32\drivers\etc\hostsに設定します。
したがって、example.comのローカル開発サイトをセットアップする場合、それらの2つのファイルにexample.devとしてセットアップします。
短い答え:これが適切に設定されたら、このURLを簡単に扱うことができます( http://example.dev ) Twitterアプリケーションをセットアップするときに、(ローカルではなく)ライブであるかのように。
同様の答えがここにありました: https://dev.Twitter.com/discussions/5749
直接見積もり(強調を追加):
有効なURLには、アプリケーションの詳細ページで認識されるドメイン名を指定できます。 OAuth 1.0aでは、フローのリクエストトークンステップでoauth_callback値を送信する必要があり、dynamicそのステップでのlocahostベースのコールバック。
これは私にとって魅力的でした。お役に立てれば。
最近http://127.0.0.1
も機能しなくなったようです。簡単な解決策は、http://localtest.me
の代わりにhttp://localhost
の代わりに127.0.0.1
を使用することです。また、任意のサブドメインを追加することもできますが、127.0.0.1
Website を参照してください
私も同じ課題を抱えていたため、localhostを有効なコールバックURLとして指定できませんでした。そこで、開発者を支援するために単純なドメインを作成しました: https://tolocalhost.com
Localhostドメインと必要なポートへのパスをリダイレクトします。他の開発者にも役立つことを願っています。
TwitterAPIExchange.phpの行でこの関数を編集#18
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; }
}
以下は、私のラップトップ上のローカルアプリケーションでFacebookを動作させるために働いた手順です。
Twitterはlocalhost
を許可するようになりましたCallback URL
設定、そこに値がある限り。
私はこれに苦労し、数十の解決策をたどりました。結局、ローカルホスト上のssl apiを操作するためにやらなければならなかったことは次のとおりです。
ダウンロードに行く: cacert.pemファイル
php.ini
*コメント解除して変更:curl.cainfo = "c:/wamp/bin/php/php5.5.12/cacert.pem"
php.ini
ファイルは、php --ini
CLIでtwitterアプリでcallbackurlを設定します:127.0.0.1:3000および0.0.0.0ではなく127.0.0.1にバインドするようにWEBrickを設定します
コマンド:Rails s -b 127.0.0.1