Intereting Posts
Написание запроса, содержащего переменную WHERE на основе ввода пользователем Интеграция jQuery fullcalendar в PHP-сайт cURL возвращает двоичные данные вместо html Есть ли библиотека PHP для XLSM (Excel с Macro) для разбора / редактирования? Запуск демона из PHP PHP: Как вы генерируете все возможные комбинации значений в массиве? Разбивка страницы не соответствует номерам отображаемых страниц. Codeigniter PHP MySQL Multi-statement работает на моей веб-странице, но не на XAMPP Найти число, которое больше или равно N в массиве PHP Mail – обнаружены множественные или некорректные символы перевода строки Адаптация метода select для приема более одного параметра Как я могу отправить уведомление Firebase Cloud Messaging без использования Firebase Console? Как вы включаете несколько страниц в один файл с включенным php? как отображать номер в определенном формате в php Отправка входных данных с android на php

Загрузить изображения на Twitter с помощью PHP

Как я могу загрузить изображение на Twitter Wall используя consumer_key и consumer_secret без входа в систему, используя PHP?

Пожалуйста, помогите мне и спасибо.

Ну, я получаю ответ, скачайте Twitter Api для php и создал одну функцию.

 function image_upload(){ define( 'YOUR_CONSUMER_KEY' , 'your twitter app consumer key'); define( 'YOUR_CONSUMER_SECRET' , 'your twitter app consumer key secret'); require ('twitt/tmhOAuth.php'); require ('twitt/tmhUtilities.php'); $tmhOAuth = new tmhOAuth(array( 'consumer_key' => "YOUR_CONSUMER_KEY", 'consumer_secret' => "YOUR_CONSUMER_SECRET", 'user_token' => "YOUR_OAUTH_TOKEN", 'user_secret' => "YOUR_OAUTH_TOKEN_SECRET", )); $image = 'image.jpg'; $code = $tmhOAuth->request( 'POST','https://upload.twitter.com/1/statuses/update_with_media.json', array( 'media[]' => "@{$image};type=image/jpeg;filename={$image}", 'status' => 'message text written here', ), true, // use auth true // multipart ); if ($code == 200){ tmhUtilities::pr(json_decode($tmhOAuth->response['response'])); }else{ tmhUtilities::pr($tmhOAuth->response['response']); } return tmhUtilities; } 

Ну, ваш пользователь должен быть авторизован с помощью OAuth с вашим APP, тогда вы используете API для публикации твитов. В соответствии с статусами POST / update & POST status / update_with_media , но у меня возникли проблемы с отправкой изображения (примерно год назад они, вероятно, исправили его до сих пор).

Вы можете использовать Oauth для авторизации вашего приложения. Я нашел это руководство полезным, так как он показывает, как подключиться к API и как публиковать сообщения в твиттере. Использование update_with_media должно позволять вам размещать изображения

update_with_media устарела, вам следует рассмотреть следующий подход: https://dev.twitter.com/rest/public/uploading-media

Используя превосходную библиотеку hybridauth и обновляя функцию TwitterUpp setUserStatus со следующим, вы можете добиться того, чего хотите:

 /** * update user status * https://dev.twitter.com/rest/public/uploading-media-multiple-photos */ function setUserStatus( $status ) { if(is_array($status)) { $message = $status["message"]; $image_path = $status["image_path"]; } else { $message = $status; $image_path = null; } $media_id = null; # https://dev.twitter.com/rest/reference/get/help/configuration $twitter_photo_size_limit = 3145728; if($image_path!==null) { if(file_exists($image_path)) { if(filesize($image_path) < $twitter_photo_size_limit) { # Backup base_url $original_base_url = $this->api->api_base_url; # Need to change base_url for uploading media $this->api->api_base_url = "https://upload.twitter.com/1.1/"; # Call Twitter API media/upload.json $parameters = array('media' => base64_encode(file_get_contents($image_path)) ); $response = $this->api->post( 'media/upload.json', $parameters ); error_log("Twitter upload response : ".print_r($response, true)); # Restore base_url $this->api->api_base_url = $original_base_url; # Retrieve media_id from response if(isset($response->media_id)) { $media_id = $response->media_id; error_log("Twitter media_id : ".$media_id); } } else { error_log("Twitter does not accept files larger than ".$twitter_photo_size_limit.". Check ".$image_path); } } else { error_log("Can't send file ".$image_path." to Twitter cause does not exist ... "); } } if($media_id!==null) { $parameters = array( 'status' => $message, 'media_ids' => $media_id ); } else { $parameters = array( 'status' => $message); } $response = $this->api->post( 'statuses/update.json', $parameters ); // check the last HTTP status code returned if ( $this->api->http_code != 200 ){ throw new Exception( "Update user status failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus( $this->api->http_code ) ); } } 

Просто используя его так:

 $config = "/path_to_hybridauth_config.php"; $hybridauth = new Hybrid_Auth( $config ); $adapter = $hybridauth->authenticate( "Twitter" ); $twitter_status = array( "message" => "Hi there! this is just a random update to test some stuff", "image_path" => "/path_to_your_image.jpg" ); $res = $adapter->setUserStatus( $twitter_status ); 

Или для полного текста twitt:

 $res = $adapter->setUserStatus( "Just text" );