/* Facebook plugin for Miranda Instant Messenger _____________________________________________ Copyright © 2011-17 Robert Pösel, 2017-18 Miranda NG team This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "stdafx.h" ////////////////////////////////////////////////////////////////////////////////////////// // connecting physically HttpRequest* facebook_client::loginRequest() { HttpRequest *p = new HttpRequest(REQUEST_POST, FACEBOOK_SERVER_LOGIN "/login.php"); p->Url << INT_PARAM("login_attempt", 1); return p; } HttpRequest* facebook_client::loginRequest(const char *username, const char *password, const char *urlData, const char *bodyData) { HttpRequest *p = new HttpRequest(REQUEST_POST, FACEBOOK_SERVER_LOGIN "/login.php"); p->Persistent = p->NONE; p->Url << INT_PARAM("login_attempt", 1) << urlData; // additional data parsed from form p->Body << INT_PARAM("persistent", 1) << CHAR_PARAM("email", username) << CHAR_PARAM("pass", password) << CHAR_PARAM("lgndim", "eyJ3IjoxOTIwLCJoIjoxMDgwLCJhdyI6MTgzNCwiYWgiOjEwODAsImMiOjMyfQ==") // means base64 encoded: {"w":1920,"h":1080,"aw":1834,"ah":1080,"c":32} << bodyData; // additional data parsed from form return p; } ////////////////////////////////////////////////////////////////////////////////////////// // request to receive login code via SMS HttpRequest* facebook_client::loginSmsRequest(const char *dtsg) { HttpRequest *p = new HttpRequest(REQUEST_POST, FACEBOOK_SERVER_REGULAR "/ajax/login/approvals/send_sms"); p->Url << INT_PARAM("dpr", 1); p->Body << CHAR_PARAM("method_requested", "sms_requested") << INT_PARAM("__a", 1) << INT_PARAM("__user", 0) << INT_PARAM("__be", 0) << CHAR_PARAM("__pc", "EXP1:DEFAULT") << CHAR_PARAM("current_time", (utils::time::unix_timestamp() + ".000").c_str()) << CHAR_PARAM("__dyn", __dyn()) << CHAR_PARAM("__req", __req()) << CHAR_PARAM("fb_dtsg", dtsg) << CHAR_PARAM("ttstamp", ttstamp_.c_str()) << CHAR_PARAM("__rev", __rev()); return p; } ////////////////////////////////////////////////////////////////////////////////////////// // setting machine name HttpRequest* facebook_client::setupMachineRequest() { HttpRequest *p = new HttpRequest(REQUEST_POST, FACEBOOK_SERVER_REGULAR "/checkpoint/"); p->Url << "next"; return p; } HttpRequest* facebook_client::setupMachineRequest(const char *dtsg, const char *nh, const char *submit) { HttpRequest *p = new HttpRequest(REQUEST_POST, FACEBOOK_SERVER_REGULAR "/checkpoint/"); p->Url << "next"; p->Body << CHAR_PARAM(CMStringA(::FORMAT, "submit[%s]", submit), submit) << CHAR_PARAM("nh", nh) << CHAR_PARAM("fb_dtsg", dtsg); return p; } ////////////////////////////////////////////////////////////////////////////////////////// // disconnecting physically HttpRequest* facebook_client::logoutRequest() { HttpRequest *p = new HttpRequest(REQUEST_POST, FACEBOOK_SERVER_REGULAR "/logout.php"); p->flags |= NLHRF_REDIRECT; p->Body << CHAR_PARAM("fb_dtsg", dtsg_.c_str()) << CHAR_PARAM("h", logout_hash_.c_str()); return p; }