2

アップデート:

Twitter は、URL フラグメント セグメントから単一のツイート ID を認識していないことが判明しました。インライン JavaScript で「最後に閲覧した twitter の最新のツイート」を取得します。誰かのプロフィールを表示してから、その人の最後のツイートの単一ページに移動した場合。インライン JavaScript には、作成者による最後のツイートのテキストが含まれています。


元の質問:

各ツイートには、 http://twitter.com/#!/DeliciousHot/status/23189589820702720などの 1 つの URL があります。ツイート ID (/DeliciousHot/status/23189589820702720) は、実際にはサーバーに送信されない URL フラグメント セグメントにあります。

当初、私はそれが次のように機能すると考えていました: URL 応答には、このツイート固有の情報がありません。現在のブラウザのURLからツイートIDを抽出し、ツイートのペイロードをAJAXで取得するJavaScriptモジュールです。次に、ページ コンテンツがツイート ペイロードで更新されます。

驚いたことに、この方法では機能しません。

Firebug を使用すると、 http://twitter.com/#!/DeliciousHot/status/ 23189589820702720の応答がインライン JavaScript でツイート ペイロード「真の紳士の 10 の兆候」テキストを持っていることを確認できます。ツイート ペイロードは、別の AJAX によって取得されません。

では、Twitter サーバーは、URL フラグメント セグメントにある場合でも、予想されるツイート ID をどのように知るのでしょうか?

4

2 に答える 2

1

JavaScriptを介してそれを行っています。JavaScriptは、URLフラグメントの場所をスキャンし、ページをリダイレクトしています。twitter.comのURLでそれを行う行は次のとおりです。

(function(g){var a=location.href.split("#!")[1];if(a){window.location.hash = "";g.location.pathname = g.HBR = a.replace(/^([^/])/,"/$1");}})(window);
于 2011-01-07T03:05:25.937 に答える
1

2 つの方法:

  1. ログインしていない場合は、リダイレクトがあります。

    (function(g){var a=location.href.split("#!")[1];if(a){window.location.hash =
      "";g.location.pathname = g.HBR = a.replace(/^([^/])/,"/$1");}})(window);
    
  2. ログインすると、api.twitter.com が呼び出されます

    http://api.twitter.com/1/statuses/show.json?include_entities=true&contributor_details=true&id=23189589820702720
    

コードのどこでこれが発生したかはわかりませんが、開発者ツールがログに記録しました。

于 2011-01-07T03:38:04.477 に答える