web-dev-qa-db-ja.com

Twitter oAuth callbackUrl-ローカルホスト開発

TwitterのoAuthのコールバックURLを取得してローカルホスト開発環境にアクセスするのが難しい人はいますか?どうやら最近無効になっています。 http://code.google.com/p/Twitter-api/issues/detail?id=534#c1

誰かが回避策を持っていますか?本当に開発を止めたくありません

109
Markus

代替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

133
Tony

先週これをやらなければなりませんでした。どうやらlocalhostは機能しませんが、127.0.0.1はGo figureを実行します。

もちろん、2つのアプリをTwitterに登録していることを前提としています。1つはライブwww.mysite.com127.0.0.1

27
Adam

コールバックURLとして http://127.0.0.1:xxxx/ を入力します。ここで、xxxxはフレームワークのポートです

10
Zamith

編集されたコールバックURL

http://localhost:8585/logintwitter.aspx

に変換

http://127.0.0.1:8585/logintwitter.aspx
8
Hakkı Eser

これは私がそれをやった方法です:

登録済みコールバック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を使用しました)。

これがお役に立てば幸いです!

7
ThdK

はい、OAuthで見つかった最近のセキュリティ問題のために無効にされました。現時点での唯一の解決策は、2つのOAuthアプリケーションを作成することです。1つは実稼働用、もう1つは開発用です。開発用アプリケーションでは、ライブコールバックURLではなくlocalhostコールバックURLを設定します。

7
arikfr

http://smackaho.st を使用します

127.0.0.1への単純なDNSアソシエーションにより、localhostまたは127.0.0.1のフィルターをバイパスできます。

smackaho.st。 28800 IN A 127.0.0.1

リンクをクリックすると、ローカルWebサーバーにあるものが表示されます(リンクがない場合は404が表示されます)。もちろん、任意のページ/ポートに設定できます:

http://smackaho.st:54878/Twitter/callback

7
Mob

ローカルホストでTwitterのコールバックURLを使用していました。仮想ホストの作成方法がわからない場合(これは重要です)、Amppsを使用します。彼は本当にクールで簡単です。いくつかの手順で、独自の仮想ホストを作成すると、すべてのURLが動作します。例えば:

  1. amppsをダウンロードしてインストールする

  2. 新しいドメインを追加します。 (ここでは、たとえばTwitter.localを設定できます)これは、仮想ホストが http://Twitter.local になり、ステップ3の後に機能することを意味します。

  3. 私はWinで作業しているので、ホストファイル-> C:\ Windows\System32\Drivers\etc\hostsに移動して、行を追加します:127.0.0.1 Twitter.local

Amppsを再起動すると、コールバックを使用できます。フレームワークMVCを使用している場合や、htaccess urlを書き換えている場合でも、任意のURLを指定できます。

このヘルプを願っています!乾杯。

5
Glibo

Fiddler を使用すると非常に便利です。

  • メニューを開くツール>ホスト...
  • 127.0.0.1 your-production-domain.comのような行を挿入し、「リクエストの再マッピングを有効にする...」がチェックされていることを確認します。押すことを忘れないでください Save
  • 実際の運用サーバーへのアクセスが必要な場合は、Fiddlerを終了するか、再マッピングを無効にします。
  • Fiddlerを再起動すると、再マッピングがオンになります(チェックされている場合)。

楽しいボーナスは、次のようなカスタムポートを指定できることです:127.0.0.1:3000 your-production-domain.com(hostsファイルを介してこれを達成することは不可能です)。また、IPの代わりに、任意のドメイン名(たとえば、localhost)を使用できます。

この方法では、Twitterアプリを1回だけ登録できます(ただし、ローカルの開発と本番で同じキーを使用してもかまいません)。

3
Roman Boiko

ローカルで開発するときは、作業中のプロジェクトを反映するローカルでホストされる開発者名を常に設定します。これを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ベースのコールバック

これは私にとって魅力的でした。お役に立てれば。

3
Joe Bergevin

最近http://127.0.0.1も機能しなくなったようです。簡単な解決策は、http://localtest.meの代わりにhttp://localhostの代わりに127.0.0.1を使用することです。また、任意のサブドメインを追加することもできますが、127.0.0.1

Website を参照してください

2
Aron Einhorn

私も同じ課題を抱えていたため、localhostを有効なコールバックURLとして指定できませんでした。そこで、開発者を支援するために単純なドメインを作成しました: https://tolocalhost.com

Localhostドメインと必要なポートへのパスをリダイレクトします。他の開発者にも役立つことを願っています。

2
Jørgen

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; }
}
2
Helper

以下は、私のラップトップ上のローカルアプリケーションでFacebookを動作させるために働いた手順です。

  • goto apps.Twitter.com
  • 名前、アプリの説明、サイトのURLを入力します注:localhost:8000の場合、前者は機能しないため127.0.0.1:8000を使用します
  • アプリケーションのTwitter_REDIRECT_URIで定義されたコールバックURLと一致するコールバックURLを入力します注:例: http://127.0.0.1/login/Twitter/callback (localhostは機能しません)。
  • 重要ユーザーのメールアドレスをリクエストする場合は、「プライバシーポリシー」と「利用規約」の両方のURLを入力してください
  • 規約に同意するチェックボックスをオンにします
  • [Twitterアプリケーションの作成]をクリックします
  • 上部の[キーとアクセストークン]タブに切り替えます
  • 「コンシューマキー(APIキー)」と「コンシューマシークレット(APIシークレット)」をアプリケーションのTwitter_KEYとTwitter_SECRETにコピーします
  • 「Permissions」タブをクリックし、「read only」、「read and write」、または「read、write and direct message」に適切に設定します(アプリケーションに必要な最も邪魔にならないオプションを使用します。ただし、OAuthログイン「読み取り専用」で十分です
  • ユーザーのメールアドレスをOAuthログインデータに戻す場合は、[追加のアクセス許可]で[ユーザーにメールアドレスをリクエストする]チェックボックスをオンにします(ほとんどの場合は[はい]をオンにします)
1
Kmeixner

Twitterはlocalhostを許可するようになりましたCallback URL設定、そこに値がある限り。

1
MrMakeIt

私はこれに苦労し、数十の解決策をたどりました。結局、ローカルホスト上のssl apiを操作するためにやらなければならなかったことは次のとおりです。

ダウンロードに行く: cacert.pemファイル

php.ini *コメント解除して変更:curl.cainfo = "c:/wamp/bin/php/php5.5.12/cacert.pem"

  • php.iniファイルは、php --ini CLIで
  • Cacert.pemは、簡単にするためにphp.iniと同じディレクトリに配置しました。
1
Lewis

twitterアプリでcallbackurlを設定します:127.0.0.1:3000および0.0.0.0ではなく127.0.0.1にバインドするようにWEBrickを設定します

コマンド:Rails s -b 127.0.0.1

1
Alok Yadav