Home   >>   Scripts   >>   Bash Script To Update Facebook Status From Command Line
Bash Script To Update Facebook Status From Command Line PDF Print E-mail
( 16 Votes )
How To - Scripts
Written by Christian Foronda   
Tuesday, 15 March 2011 16:26

Create the script:

# vi /usr/bin/fbstatus

 

#!/bin/bash
#
# Original BASH login&example by http://360percents.com
# v1.0
#
# Enhanced by chr1x2 at systmbx.com
#

email="YourEmailFBLogin"
pass="YourFBPassword"
status="${@}" #must be less than 420 chars

if [ $(echo "${status}" | wc -c) -gt 420 ]; then
echo "FATAL: The status should not be longer than 420 characters!"
exit 1
fi

if [ -z "$status" ]; then
echo Usage: $0 '"My status update"'
exit 1
fi

touch "cookie.txt" #create a temp. cookie file
loginpage=`curl -s -c ./cookie.txt -A "Mozilla/5.0" "http://m.facebook.com"` #initial cookies

#LOGIN PARAMETERS
form_action=`echo "$loginpage" | tr '"' "\n" | grep "https://www.facebook.com/login.php"`
form_data=`echo "$loginpage" | sed -e 's/.*<form//' | sed -e 's/form>.*//' | tr '/>' "\n" | grep 'input ' | grep -v "email\|pass"`

#FUNCTION PARSES FORM DATA LIKE HIDDEN INPUTS
function parse_form() {
form_data="$1"
params=""
for (( i=1; i <= `echo "$form_data" | wc -l` ; i++ ))
do
name=`echo "$form_data" | sed -n "$i"p | tr ' ' "\n" | grep 'name' | cut -d '"' -f 2`
value=`echo "$form_data" | sed -n "$i"p | tr ' ' "\n" | grep 'value' | cut -d '"' -f 2`
params="$params$name=$value&"
done
echo "$params"
}

#LOGIN
params="email=$email&pass=$pass&"`parse_form "$form_data"`
logged_in=`curl -s -b ./cookie.txt -c ./cookie.txt -A "Mozilla/5.0" -d "$params" -L "$form_action"`
homepage=`curl -s -b ./cookie.txt -c ./cookie.txt -A "Mozilla/5.0" -L "http://m.facebook.com/profile.php"`

#UPDATE STATUS
status_form=`echo "$homepage" | sed -e 's/.*<form id="composer_form//' | sed -e 's/textarea>.*//' | tr '/>' "\n" | grep 'input ' | grep 'name' | grep -v 'query' | grep -v 'status'`
status_action=`echo "$homepage" | tr '"' "\n" | grep "/a/home.php?refid="`
status_params=`parse_form "$status_form"`"status=${status}&update=Share"
update=`curl -s -b ./cookie.txt -c ./cookie.txt -A "Mozilla/5.0" -d "$status_params" -L "http://m.facebook.com$status_action"`
#$callback=`echo "$update" | grep "$status"` #just a primitive example of success checking

#LOGOUT
logout_link=`echo "$update" | tr '"' "\n" | grep "/logout.php?"`
logout=`curl -s -b ./cookie.txt -c ./cookie.txt -A "Mozilla/5.0" -L "http://m.facebook.com$logout_link"`

if [ "$?" == "0" ]; then
echo "Status update successful!"
fi

rm "cookie.txt" #remove cookie file

fbstatus

# chmod +x /usr/bin/fbstatus

 

Usage:

# fbstatus "My status update"


FB Status Update Screenshot

 

Reference:
http://360percents.com/posts/bash-script-to-update-facebook-status-linux-mac-os-x/




blog comments powered by Disqus
Last Updated on Wednesday, 20 July 2011 08:37