2010-08-04 8 views
0

Bonjour je développe une application SMS pour mettre à jour le statut facebook en PHP. Je peux recueillir le nom d'utilisateur et le mot de passe de l'utilisateur. Je sais que cela peut être fait par Status.set, mais comment puis-je utiliser le nom d'utilisateur et mot de passe et obtenir la clé de session nécessaire et en tant que tel. S'il vous plaît aider.Mise à jour du statut facebook par SMS

Répondre

0

Vous devrez utiliser extended permissions (offline_access). L'utilisateur aura toujours à authenticate with oauth, la façon la plus « inobtrusive » serait la route Desktop Application

+0

hey, mais il dit: « La mise en œuvre de OAuth Facebook ne prend pas en charge explicite de l'application de bureau Toutefois, si votre application de bureau peut intégrer un navigateur Web, vous pouvez facilement ajouter le support Facebook à votre application en utilisant le même flux d'agent utilisateur OAuth utilisé par les clients JavaScript. " –

1

Espérons que cela aidera quelqu'un

function setFacebookStatus($status, $login_email, $login_pass, $debug=false) { 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php?m&next=http%3A%2F%2Fm.facebook.com%2Fhome.php'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email=' . urlencode($login_email) . '&pass=' . urlencode($login_pass) . '&login=' . urlencode("Log in")); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt"); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12"); 
curl_exec($ch); 
curl_setopt($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com/home.php'); 
$page = curl_exec($ch); 
curl_setopt($ch, CURLOPT_POST, 1); 
preg_match("/input type=\"hidden\" name=\"post_form_id\" value=\"(.*?)\"/", $page, $form_id); 
preg_match("/input type=\"hidden\" name=\"fb_dtsg\" value=\"(.*?)\"/", $page, $fb_dtsg); 
preg_match("/input type=\"hidden\" name=\"charset_test\" value=\"(.*?)\"/", $page, $charset_test); 
preg_match("/input type=\"submit\" class=\"button\" name=\"update\" value=\"(.*?)\"/", $page, $update); 
preg_match_all("#<form([^>]*)>(.*)</form>#Ui", $page, $form_ar); 
for($i=0;$i<count($form_ar[0]);$i++) { 
if(stristr($form_ar[0][$i],"post_form_id")) preg_match("/form action=\"(.*?)\"/", $page, $form_num);  
} 
$strpost = 'post_form_id=' . $form_id[1] . '&status=' . urlencode($status) . '&update=' . urlencode($update[1]) . '&charset_test=' . urlencode($charset_test[1]) . '&fb_dtsg=' . urlencode($fb_dtsg[1]); 
if($debug) { 
    echo "Parameters sent: ".$strpost."<hr>"; 
} 
curl_setopt($ch, CURLOPT_POSTFIELDS, $strpost); 
curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com' . $form_num[1]); 
curl_exec($ch); 
if ($debug) { 
    print_r(curl_getinfo($ch)); 
    echo curl_errno($ch) . '-' . curl_error($ch); 
    echo "<br><br>Your Facebook status seems to have been updated."; 
} 
curl_close($ch); } 
Questions connexes