[Twitter] Постинг через Веб-интерфейс

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 1 апр 2014.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    Пишу скрипт, который бы логинился и затем бы постил в Тв. аккаунт через веб интерфейс.
    Этап авторизации пройден успешно.
    А вот на этапе постинга какие-то грабли.
    Ответ сервера:
    403 Forbidden: The server understood the request, but is refusing to fulfill it.

    1. Авторизиуремся.
    2. Загружаем главную, парсим с неё auth_token (здесь косяков нет, проверенно!)
    Вот, собственно, сам код постинга:
    PHP:
    function send_post ($post$auth_token){
    $html post_content_xml ('https://twitter.com/i/tweet/create''authenticity_token='.$auth_token.'&place_id=&status='.urlencode($post));
    $f fopen("out.txt","w");
    fwrite ($f$html);
    fclose ($f);
    }

    function 
    post_content_xml ($url,$postdata) {
        
    $uagent "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36";

        
    $ch curl_init$url );
        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_HTTPHEADER , array('Content-Type: application/x-www-form-urlencoded; charset=UTF-8''X-Requested-With: XMLHttpRequest'));
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_HEADER1);
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
    curl_setopt($chCURLOPT_ENCODING"UTF-8");
        
    curl_setopt($chCURLOPT_USERAGENT$uagent);
        
    curl_setopt($chCURLOPT_TIMEOUT120);
        
    curl_setopt($chCURLOPT_REFERER"https://twitter.com/");
        
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
        
    curl_setopt($chCURLOPT_POST1);
        
    curl_setopt($chCURLOPT_POSTFIELDS$postdata);
        
    curl_setopt($chCURLOPT_COOKIEJAR"coo.txt");
        
    curl_setopt($chCURLOPT_COOKIEFILE,"coo.txt");

        
    $content curl_exec$ch );
         
    curl_close$ch );

        return 
    $content;
    }


    send_post ('Text 2 http://test2.ru ',$auth_token);
     
    Последнее редактирование: 1 апр 2014
    Iwashka нравится это.
  2. Flayer1993

    Flayer1993 Создатель

    Регистр.:
    31 мар 2014
    Сообщения:
    13
    Симпатии:
    1
    Я очень извиняюсь, но в функции переменная $text нигде не инициализирована. Скорее всего вместо $text должен быть $post (просто если ктото, кто совсем не разбирается в программировании будет копировать код, а таких много, будут потом строчить по 20 жалоб, что код га*но и не работает). А так, за скрипт спасибо, довольно удобно, но я бы сделал чтото типо класса типа twitterService где бы сделал это как паблик функции, чтобы было удобно работать :)
     
    Iwashka нравится это.
  3. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Пожалуйста. В Инете лазил и подобного скрипта не увидел.
    Конечно, вместе $text указан должен быть $post.
    Ошибка всё та же, даже после смены переменных.
    Помогите, пожалуйста, решить проблему в том, что скрипт не постит сам твит.

    P.S.
    Исправил в первом посте.
    Как решим проблему и запустим скрипт полностью в рабочее состояние - опубликую его в первом посте.
     
    Последнее редактирование: 1 апр 2014
    Iwashka нравится это.