Last Updated: February 25, 2016
·
7.35K
· ariefbayu

Using phantomjs to post status update into facebook

Just a proof of concept while playing around with phantomjs

var page = new WebPage();

//spoof it as opera mini, to get the mobile page working properly
page.settings.userAgent = "Opera/9.80 (J2ME/MIDP; Opera Mini/6.5.26955/27.1407; U; en) Presto/2.8.119 Version/11.10";

function doLogin(){
    page.evaluate(function(){
        var frm = document.getElementById("login_form");

        frm.elements["email"].value = "--enter-your-email--";
        frm.elements["pass"].value = "--enter-your-password--";

        frm.submit();
    });
}

function doUpdateStatus(){
    page.evaluate(function(){
        var form = document.getElementById("composer_form");
        form.elements["status"].value = "--write-down-your-status-message--";
        form.submit();
    });
}

page.onLoadFinished = function(status){
    console.log( (!phantom.state ? "no-state" : phantom.state) + ": " + status );
    if(status === "success"){
        if( !phantom.state ){
            doLogin();
            phantom.state = "logged-in";
        } else if(phantom.state === "logged-in"){
            doUpdateStatus();
            phantom.state = "status-updated";
        } else if(phantom.state === "status-updated"){
            phantom.exit();
        }
    }
};

page.onConsoleMessage = function (message){
    console.log("msg: " + message);
};

page.open("http://m.facebook.com");

2 Responses
Add your response

Very useful. Thanks.
I haven't managed to find any proper source code demonstrating how to use PhantomJS.

This helps a lot.

over 1 year ago ·

the code doesn't cope with the actual posting mechanism used by Facebook today, but nonetheless it is a valuable code piece, as demonstration on using phantomjs

over 1 year ago ·

Have a fresh tip? Share with Coderwall community!

Post
Post a tip
Related Tags
#javascript
Did you know?

JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.

Security insights from Cside