0

Facebookがやったように、シンプルな画像のURLを実装したかったのです。

http://developers.facebook.com/docs/reference/api/using-pictures/をチェックすると

ご覧のとおり、彼らは ID のみで写真、イベント、およびアプリケーションを使用しましたが、イベント、アプリケーション、および写真 ID はすべて 3 つの異なるテーブル ID です。

FB写真: http: //graph.facebook.com/331218348435/picture

どの ID がどのカテゴリ (イベント、アプリケーション、または写真) の ID であるかをどのように知ることができますか?

4

1 に答える 1

0

Facebookの各オブジェクトは、独自の一意の識別子を持つことができます。つまり、たとえば、FBグループのIDが42の場合、アプリケーション、グループ、またはその他のオブジェクトは同じIDを持つことはできません。これにより、WebアプリケーションはIDを画像のURLに直接マップできます。

Facebookは、情報でエンコードされている可能性が高い64ビットの識別子を使用しています。したがって、42という小さなIDが表示されることはないと思います。情報は次のようにエンコードされている可能性があります。

64 bits total
1st 16 bits = Shard ID (where is the object is stored)
2nd 16 bits = Type ID (app, group, person)
Remaining 32 bits = Local unique ID (incremental id for example)

ビット単位のロジックを使用して、識別子から型を抽出できます。IDから画像のURLへの直接の1対1のマッピングがある場合は、おそらく必要ありませんが。

FBのバックエンドがどのように構成されているのか実際にはわかりません。上記は単なる実装例です。32ビットIDのテーブルがある場合でも、エンコードされたタイプで64ビットに変換し、オブジェクトタイプに関係なくすべての識別子を一意にすることができます。

特に本番環境に既存の構造がある場合は、やり過ぎかもしれません。私はそれがどのように行われるのか、そしてFacebookがそれをどのように行うのかを説明しようとしているだけです。

于 2013-01-17T17:53:56.700 に答える