Skip to main content

Understanding Facebook IDs

https://www.nayuki.io/page/understanding-facebook-ids
On Facebook, an identifier (FBID) is assigned to most pieces of content. The identifier is a simple positive integer like 12345. You can use the FBID to cite a piece of content precisely and concisely using the URL fb.com/<fbid>.

Explained below, a publicly visible FBID is available for many types of content, though not all types. These identifiers can be used (and abused) in interesting ways.

Examples
Here are some URLs of various content on Facebook. The FBID is indicated in bold:

https://www.facebook.com/profile.php?id=4
https://www.facebook.com/pages/doorsopenTO/361063578336
https://www.facebook.com/photo.php?fbid=10151052362543337&set=a.402126878336.167300.361063578336
https://www.facebook.com/doorsopenTO/posts/10150868476418337
Scope
For these top-level types, each item has an FBID:

Person (a.k.a. profile, user, timeline)
Page
Event
Group
For these types that are attached to a top-level item, each item has an FBID:

Status update (a text post)
Photo
Video
Album
FBIDs do not seem to exist for these item types:

Comment (which is attached to a status/photo/video/album) [0]
Like[1]
The news feed
Messages in private messaging
File attachments in private messaging
(These lists are incomplete. If a Facebook item is not in these lists, then I am not aware of it or I have not determined whether it has an FBID.)

How to use, and why
The main way you use an FBID is to cite a specific item. For example, it could be a person’s profile or a single photo. The alternative to using an FBID is resorting to an awkward natural language reference like “that photo where you wore the red shirt” or “that car accident thread from last night”. But there are some subtle points as well:

When you know an FBID, you can view the item at www.facebook.com/<fbid>, or even more simply at fb.com/<fbid>. There is no need to edit the number into a structured URL such as /photo.php?fbid=xxx&set=yyy or /JohnSmith/posts/zzz.

To get the FBID of a post or photo, look at the timestamp text (e.g. “5 minutes ago”), which is a permalink to that piece of content. To get the FBID of a person, page, or group can be difficult and will not be explained here.

Referring to a person by name (e.g. John Smith) can be very error-prone. For example, many people might have this name, so searching may yield many wrong results. The person might have excluded their profile from public search, which would make them hard to find[2]. By comparison, citing by FBID is easy and unambiguous. [3]

For any photo, the URL for the raw image (rather than the photo page with likes and comments) always seems to contain the FBID, along with other unexplained numbers. For example, the FBID of 526270_10151052362543337_2115714767_n.jpg is 10151052362543337. Older photo URLs also contain the uploader’s FBID, but photos uploaded after a certain date[4] no longer have it. So if you are given a direct photo URL from out of the blue, this is useful for retrieving the conversation thread (if you have the permission to view the thread). And as noted, for earlier URLs you can even retrieve the profile of the user who uploaded the photo.

The standard link for a photo page includes not only the photo’s FBID, but extra optional information such as the album (set), type (not sure what it means), theatre mode, and others. The album string usually contains the FBID of the album and the FBID of the uploader. For example: https://www.facebook.com/photo.php?fbid=10151052362543337&set=a.402126878336.167300.361063578336&type=1&relevant_count=1

The FBID of people who registered early have some information about their college/university. Early Facebook users were attached to a certain school, and the school shows up in the prefix (3 digits?) of their FBID. You can notice this if you collect the FBIDs of many friends and look at ones with the same prefix, or ones who claim to go to the same postsecondary school.

Notes
Facebook’s front-end (web page presentation) and back-end (database model) systems are in constant flux. As you can see, I’ve already noted some places where the behavior changed in the last few years. So to make things clear, all the claims on this page are valid at the time of writing (February 2013), to the best of my knowledge.

[0]: However, comments have their own ID space, e.g.: https://www.facebook.com/doorsopenTO/posts/414358988584020?comment_id=5092420&offset=0&total_comments=1

[1]: The act of clicking “Like” does not generate an FBID. However, likes are associated with the FBID of the item. Moreover, the like list for a comment has an ID that is different from the comment ID and the thread’s FBID. For example, this is the list of likes for the comment in [0]: https://www.facebook.com/browse/likes?id=414365728583346

[2]: They still can be found through friend lists, random public activity, Google searching for their exact name string, etc. But these methods are much harder.

[3]: In addition to a numerical ID, most people have a Facebook URL name too (e.g. john.smith.42). This was optional in the past, but in late 2011 Facebook began gradually assigning a URL to each user by force.

[4]: In approximately year 2012, if I recall correctly?

Comments

Popular posts from this blog

Rand mm 10

https://stackoverflow.com/questions/2447791/define-vs-const Oh const vs define, many time I got unexpected interview question. As this one, I do not know much or try to study this. My work flow, and I believe of many programmer is that search topic only when we have task or job to tackle. We ignore many 'basic', 'fundamental' documents, RTFM is boring. So I think it is a trade off between the two way of study language. And I think there are a bridge or balanced way to extract both advantage of two method. There are some huge issue with programmer like me that prevent we master some technique that take only little time if doing properly. For example, some Red Hat certificate program, lesson, course that I have learned during Collage gave our exceptional useful when it cover almost all topic while working with Linux. I remember it called something like RHEL (RedHat Enterprise Linux) Certificate... I think there are many tons of documents, guide n books about Linux bu

Martin Fowler - Software Architecture - Making Architecture matter

  https://martinfowler.com/architecture/ One can appreciate the point of this presentation when one's sense of code smell is trained, functional and utilized. Those controlling the budget as well as developer leads should understand the design stamina hypothesis, so that the appropriate focus and priority is given to internal quality - otherwise pay a high price soon. Andrew Farrell 8 months ago I love that he was able to give an important lesson on the “How?” of software architecture at the very end: delegate decisions to those with the time to focus on them. Very nice and straight-forward talk about the value of software architecture For me, architecture is the distribution of complexity in a system. And also, how subsystems communicate with each other. A battle between craftmanship and the economics and economics always win... https://hackernoon.com/applying-clean-architecture-on-web-application-with-modular-pattern-7b11f1b89011 1. Independent of Frameworks 2. Testable 3. Indepe