• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال مطلب به گوگل پلاس
#1
سلام
می خوام تو یه پروژه افراد feed های سایت های مورد علاقشون رو بدن و مطالب اونها رو به گوگل پلاسشون ارسال کنم .
کسی می تونه راهنمایی کنه ؟
  پاسخ
تشکر شده توسط :
#2
کد پی‌اچ‌پی:
<?php
// REQUIRED PARAMETERS
$status 'http://www.mylink.com';
$email '[email protected]';
$pass 'yourpassw0rd';
$pageid false;
$cookies 'cookie.txt';
$sleeptime 0;
$uagent 'Mozilla/4.0 (compatible; MSIE 5.0; S60/3.0 NokiaN73-1/2.0(2.0617.0.0.7) Profile/MIDP-2.0 Configuration/CLDC-1.1)';
$pc_uagent 'Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1';
$debug FALSE;
 
function 
tidy($str) {
    return 
rtrim($str"&");
}
 
/**
 * Handle cookie file
 */
@unlink($cookies); //delete previous cookie file if exists
touch($cookies); //create a cookie file
 
/**
 * MAIN BLOCK
 * login_data() just collects login form info
 * login($postdata) logs you in and you can do pretty much anything you want from here on
 */
login(login_data());
sleep($sleeptime);
if (
$pageid) {
    
update_page_status();
} else {
    
update_profile_status();
//update status with $GLOBAL['status'];
sleep($sleeptime);
logout(); //optional - log out
 
/**
 * 1. GET: http://plus.google.com/
 * Parse the webpage and collect form data
 * @return array (string postdata, string postaction)
 */
function login_data() {
    
$ch curl_init();
    
curl_setopt($chCURLOPT_COOKIEJAR$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_USERAGENT$GLOBALS['uagent']);
    
curl_setopt($chCURLOPT_URL"https://plus.google.com/");
    
curl_setopt($chCURLOPT_COOKIEFILE$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
 
    
$buf utf8_decode(html_entity_decode(curl_exec($ch)));
    
$buf str_replace'&''&'$buf ); // just in case any correctly encoded
    
$buf str_replace'&''&'$buf ); // now encode them all again
    
curl_close($ch);
 
    echo 
"\n[+] Sending GET request to: https://plus.google.com/\n\n";
 
    
$toreturn '';
 
    
$doc = new DOMDocument;
    
$doc->loadxml($buf);
    
$inputs $doc->getElementsByTagName('input');
    foreach (
$inputs as $input) {
    switch (
$input->getAttribute('name')) {
        case 
'Email':
        
$toreturn .= 'Email=' urlencode($GLOBALS['email']) . '&';
        break;
        case 
'Passwd':
        
$toreturn .= 'Passwd=' urlencode($GLOBALS['pass']) . '&';
        break;
        default:
        
$toreturn .= $input->getAttribute('name') . '=' urlencode($input->getAttribute('value')) . '&';
    }
    }
    return array(
tidy($toreturn), $doc->getElementsByTagName('form')->item(0)->getAttribute('action'));
}
 
/**
 * 2. POST login: https://accounts.google.com/ServiceLoginAuth
 */
function login($postdata) {
 
    
$ch curl_init();
    
curl_setopt($chCURLOPT_COOKIEJAR$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_COOKIEFILE$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_USERAGENT$GLOBALS['uagent']);
    
curl_setopt($chCURLOPT_URL$postdata[1]);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_POSTFIELDS$postdata[0]);
    
$buf curl_exec($ch); #this is not the g+ home page, because the b**** doesn't redirect properly
    
curl_close($ch);
    if (
$GLOBALS['debug']) {
    echo 
$buf;
    }
 
    echo 
"\n[+] Sending POST request to: " $postdata[1] . "\n\n";
}
 
/**
 * 3. GET status update form:
 * Parse the webpage and collect form data
 */
function update_profile_status() {
 
    
$ch curl_init();
    
curl_setopt($chCURLOPT_COOKIEJAR$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_COOKIEFILE$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_USERAGENT$GLOBALS['uagent']);
    
curl_setopt($chCURLOPT_URL'https://m.google.com/app/plus/?v=compose&group=m1c&hideloc=1');
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
$buf utf8_decode(html_entity_decode(str_replace('&'''curl_exec($ch))));
    
$header curl_getinfo($ch);
    
curl_close($ch);
    if (
$GLOBALS['debug']) {
    echo 
$buf;
    }
 
    
$params '';
    
$doc = new DOMDocument;
    
$doc->loadxml($buf);
    
$inputs $doc->getElementsByTagName('input');
    foreach (
$inputs as $input) {
    if ((
$input->getAttribute('name') != 'editcircles')) {
        
$params .= $input->getAttribute('name') . '=' urlencode($input->getAttribute('value')) . '&';
    }
    }
    
$params .= 'newcontent=' urlencode($GLOBALS['status']);
    
//$baseurl = $doc->getElementsByTagName('base')->item(0)->getAttribute('href');
    
$baseurl 'https://m.google.com' parse_url($header['url'], PHP_URL_PATH);
 
    
$ch curl_init();
    
curl_setopt($chCURLOPT_COOKIEJAR$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_COOKIEFILE$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_USERAGENT$GLOBALS['uagent']);
    
//delete group=b0& in the line below, to post just to your circles, not to public
    
curl_setopt($chCURLOPT_URL$baseurl '?v=compose&group=m1c&group=b0&hideloc=1&a=post');
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_REFERER$baseurl '?v=compose&group=m1c&group=b0&hideloc=1');
    
curl_setopt($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_POSTFIELDS$params);
    
$buf curl_exec($ch);
    
$header curl_getinfo($ch);
    
curl_close($ch);
    if (
$GLOBALS['debug']) {
    echo 
$buf;
    }
 
    echo 
"\n[+] POST Updating status on: " $baseurl "\n\n";
}
 
/**
 * Not implemented yet!
 * just ignore this function for now
 */
function update_page_status() {
 
    
$ch curl_init();
    
curl_setopt($chCURLOPT_COOKIEJAR$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_COOKIEFILE$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_USERAGENT$GLOBALS['pc_uagent']);
    
curl_setopt($chCURLOPT_URL'https://plus.google.com/u/0/b/' $GLOBALS['pageid'] . '/');
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
$buf utf8_decode(html_entity_decode(str_replace('&'''curl_exec($ch))));
    
curl_close($ch);
    if (
$GLOBALS['debug']) {
    echo 
$buf;
    }
}
 
/**
 * 3. GET logout:
 * Just logout to look more human like and reset cookie :)
 */
function logout() {
    echo 
"\n[+] GET Logging out: \n\n";
    
$ch curl_init();
    
curl_setopt($chCURLOPT_COOKIEJAR$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_COOKIEFILE$GLOBALS['cookies']);
    
curl_setopt($chCURLOPT_USERAGENT$GLOBALS['uagent']);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_URL'https://www.google.com/m/logout');
    
$buf curl_exec($ch);
    
curl_close($ch);
    if (
$GLOBALS['debug']) {
    echo 
$buf;
    }
}
 
?>


http://www.nextscripts.com/google-plus-a...d-posting/
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط :
#3
ممنون .
فقط چطوری می تونم بعد از لاگین یه پست برای یک نفر بفرستم .
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان