Web Applications Stack Exchange is a question and answer site for power users of web applications. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way to set up printing an entire Facebook thread?

Using the print dialog, it seems to only grab with is available up to "Loading earlier messages" If one has 5000+ messages in one thread this can be a pain.

Is there a way to print or export this for easy reading?

share|improve this question
Have to use the API to make a custom app for this. No other way. – Bibhas Apr 5 '12 at 18:43
Or use firefox with this extension. – Bibhas Apr 5 '12 at 18:45
The firefox extension is a possible answer – phwd Apr 5 '12 at 18:54
The messages should all be present in the Download Your Information tool on Facebook, right? you could try that and see if it's easily printable – Igy May 8 '12 at 22:08
@Igy cool, well that sounds like a possible answer as long it's easily printable. If it is bundled in HTML I could change around the CSS to suit. Thanks, you could post that as answer or I could when I try it out, doesn't matter to me – phwd May 8 '12 at 22:49
up vote 3 down vote accepted

You can probably get the information you need from Facebook's 'Download your information' tool - this is accessed from the Account Settings page, via a link marked 'Download a copy of your Facebook data'

It takes a while, but the archive will include chat messages

Tool screenshot

share|improve this answer
This works for the text, but all pictures are missing. – Michael Kropat Jul 5 '13 at 18:45
Doesn't work with people you're not friends with anymore :( – David 天宇 Wong Dec 15 '13 at 13:22
Also some smileys won't make it. – Franck Dernoncourt Jan 17 '15 at 5:43

I ran this small script in the developer console of the Graph API Explorer to download a full conversation as JSON:

var messages = [];
var messageId = 123456; //etc
var token = $('#access_token').val();

function process(data) {
    if(data.data.length) {
        messages = messages.concat(data.data)
    if(data.paging && data.paging.next) {
        console.log('Getting next page');
        return $.getJSON(data.paging.next).then(process)

     'https://graph.facebook.com/' + messageId + '/comments' +
     '?format=json&access_token=' + token
).then(process).then(function() {
    var blob = new Blob([JSON.stringify(messages)], {type: 'text/json'});
    location.href = URL.createObjectURL(blob);

You'll need to paste jquery.min.js in there, and give yourself a read_mailbox extended permission, before running that

share|improve this answer

protected by Community May 14 '13 at 3:17

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.