Статусы twitter & PHP Curl

Discussion in 'PHP' started by Doom123, 8 Jan 2012.

  1. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    756
    Likes Received:
    244
    Reputations:
    22
    Привет всем! Есть проблема ... у меня достатачно большой опыт в работе с php & curl(написание ботов)
    но с таким столкнулся первый раз...

    Пытаюсь запостить на твиттере статус без АПИ
    снифаю хидеры .. делаю тоже самое а оно не даёт =\\
    В инете везде пишут что теперь никак без oAuth не запостишь.. но я не верю .. ведь браузер то может ..

    Вот код может у вас будут идеи?

    PHP:
    <?php
     set_time_limit
    (0);
     
    require_once(
    'mod/cURL.class.php');

    $cook dirname(realpath(__FILE__)).'/cookie.txt';
    $c = new cURL(true,$cook);

    /* Логинимся.. тут всё окей...  */
    $c->get('https://twitter.com');

    $c->post('https://twitter.com/sessions?phx=1','session%5Busername_or_email%5D=login&session%5Bpassword%5D=pass&scribe_log=%5B%5D&redirect_after_login=%2F&remember_me=1');        
    $r $c->get('https://twitter.com');

    /* Постим статус... тут проблема */  
    preg_match('#"postAuthenticityToken":"(.+?)",#',$r,$token);
            
    $headers = array('Accept: application/json, text/javascript, */*; q=0.01');
    $headers[] = 'X-Requested-With: XMLHttpRequest';
    $headers[] = 'X-PHX: true';

    //Пробывал и строкой и массив данные отправлять... это тоже влияет..         
    $post = array('include_entities' => 'true','status' => 'status','post_authenticity_token' => $token[1]);
    echo 
    $c->post('https://api.twitter.com/1/statuses/update.json',$post,$headers);       
    ?>
    cURL.class.php

    PHP:
    <?php

    class cURL {
        var 
    $headers;
        var 
    $user_agent;
        var 
    $compression;
        var 
    $cookie_file;
        var 
    $proxy;
         
        function 
    cURL($cookies=TRUE$cookie_file='cookies.txt'$compression='gzip'$proxy='') {
            
    $this->headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
            
    $this->headers[] = 'Connection: Keep-Alive';
            
    $this->headers[] = 'Content-type: application/x-www-form-urlencoded; charset=UTF-8';
            
    $this->user_agent =  $_SERVER['HTTP_USER_AGENT'];
            
    $this->compression=$compression;
            
    $this->proxy=$proxy;
            
    $this->cookies=$cookies;
            if (
    $this->cookies == TRUE$this->cookie_file $cookie_file;
        }
         
        function 
    get($url) {
            
    $process curl_init($url);
            
    curl_setopt($processCURLOPT_HTTPHEADER$this->headers);
            
    curl_setopt($processCURLOPT_HEADER0);
            
    curl_setopt($processCURLOPT_USERAGENT$this->user_agent);
            
            if (
    $this->cookies == TRUE)
            {
                
    curl_setopt($processCURLOPT_COOKIEFILE$this->cookie_file);
                
    curl_setopt($processCURLOPT_COOKIEJAR$this->cookie_file);
            }
            
            
    curl_setopt($process,CURLOPT_ENCODING $this->compression);
            
    curl_setopt($processCURLOPT_TIMEOUT30);
            if (
    $this->proxycurl_setopt($cUrlCURLOPT_PROXY$this->proxy);
            
    curl_setopt($processCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($processCURLOPT_FOLLOWLOCATION1);
            
    curl_setopt($processCURLOPT_SSL_VERIFYPEER0);
            
    curl_setopt($processCURLOPT_SSL_VERIFYHOST0);
            
    curl_setopt($processCURLOPT_AUTOREFERERtrue);
            
    $return curl_exec($process);
            
    curl_close($process);
            return 
    $return;
        }
         
        function 
    post($url,$data,$headers false) {
            
            if(
    is_array($headers))
                
    $this->headers array_merge($this->headers,$headers);
                
            
    $process curl_init($url);
            
    curl_setopt($processCURLOPT_HTTPHEADER$this->headers);
            
            
    curl_setopt($processCURLOPT_HEADER0);
            
    curl_setopt($processCURLOPT_USERAGENT$this->user_agent);
            
            if (
    $this->cookies == TRUE)
            {
                
    curl_setopt($processCURLOPT_COOKIEFILE$this->cookie_file);
                
    curl_setopt($processCURLOPT_COOKIEJAR$this->cookie_file);
            }
            
            
    curl_setopt($processCURLOPT_ENCODING $this->compression);
            
    curl_setopt($processCURLOPT_TIMEOUT30);
            
            if (
    $this->proxycurl_setopt($processCURLOPT_PROXY$this->proxy);
            
            
    curl_setopt($processCURLOPT_POSTFIELDS$data);
            
    curl_setopt($processCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($processCURLOPT_FOLLOWLOCATION1);
            
    curl_setopt($processCURLOPT_SSL_VERIFYPEER0);
            
    curl_setopt($processCURLOPT_SSL_VERIFYHOST0);
            
    curl_setopt($processCURLOPT_POST1);
            
    $return curl_exec($process);
            
    curl_close($process);
            return 
    $return;
        }
    }

    ?>

    А в ответ
    Code:
    {"errors":[{"code":99,"message":"Unable to verify your credentials"}]}
    
     
  2. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    748
    Likes Received:
    312
    Reputations:
    46
    ну так читай в доках к апи твиттера почему эта ошибка может быть
     
  3. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    457
    Likes Received:
    80
    Reputations:
    16
    Referrer?
     
  4. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    756
    Likes Received:
    244
    Reputations:
    22
    Sharky Я ж говорю в нэте про oAuth ....

    AnGeI та нет вроде =\\
     
  5. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    756
    Likes Received:
    244
    Reputations:
    22
    хммм странно заработало... не с того не с сего))
     
  6. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    449
    Reputations:
    722
    Твиттер читает ачат, видимо нашел у себя дыру и закрыл её :D
     
    _________________________
Loading...