Я использую приведенный ниже код, чтобы получить мои твиты и echo json. Это прекрасно работает.
<?php session_start(); require_once('includes/twitter/twitteroauth.php'); $twitteruser = "xxxxxx"; $notweets = 3; $consumerkey = "xxxxxxx"; $consumersecret = "xxxxxx"; $accesstoken = "xxxxxxxx"; $accesstokensecret = "xxxxxx"; $connection = new TwitterOAuth($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets); echo json_encode($tweets); ?>
Теперь я хочу отправить твит с помощью аналогичного кода, но он не работает. Я не уверен, правильный ли синтаксис отправки. так что, пожалуйста, помогите мне.
<?php session_start(); require_once('includes/twitter/twitteroauth.php'); //Path to twitteroauth library $twitteruser = "xxxxxx"; $notweets = 3; $consumerkey = "xxxxxxx"; $consumersecret = "xxxxxx"; $accesstoken = "xxxxxxxx"; $accesstokensecret = "xxxxxx"; // start connection $connection = new TwitterOAuth($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); //message $message = "Hi how are you"; //send message $status = $connection->post('https://api.twitter.com/1.1/statuses/update.json', array('status' => $message)); ?>
в<?php session_start(); require_once('includes/twitter/twitteroauth.php'); //Path to twitteroauth library $twitteruser = "xxxxxx"; $notweets = 3; $consumerkey = "xxxxxxx"; $consumersecret = "xxxxxx"; $accesstoken = "xxxxxxxx"; $accesstokensecret = "xxxxxx"; // start connection $connection = new TwitterOAuth($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); //message $message = "Hi how are you"; //send message $status = $connection->post('https://api.twitter.com/1.1/statuses/update.json', array('status' => $message)); ?>
Я использовал twitteroauth.php, чтобы опубликовать твиты, когда новый API сломал его. Вы правильно используете $connection->post
, но, похоже, функция больше не работает. Самое легкое решение, которое я нашел, это обмен файлом twitteroauth.php с twitter-api-php-файлом J7mbo для нового 1.1 API:
https://github.com/J7mbo/twitter-api-php
Вот его пошаговые инструкции по его использованию. Я думаю, вы будете приятно удивлены, обнаружив, что вы можете оставить большую часть своего кода тем же самым, просто переключите вызовы twitteroauth с его вызовами функций в соответствующих местах:
Простейший пример PHP для извлечения user_timeline с API-интерфейсом Twitter версии 1.1
Он не дает конкретного примера публикации твита, но вот что вам нужно для этой функции:
$url = 'https://api.twitter.com/1.1/statuses/update.json'; $requestMethod = 'POST'; $postfields = array( 'status' => 'Hi how are you' ); echo $twitter->buildOauth($url, $requestMethod) ->setPostfields($postfields) ->performRequest();
С новым API twitter вам не нужно указывать свое имя пользователя / пароль. Маркер аутентификации будет обрабатывать все.
Просто используйте пример:
$connection->post('statuses/update', array('status' =>$message));
Попробуйте, вам не понадобится имя пользователя / пароль, который вы можете опубликовать через ключ API, прочитайте здесь учебник.
http://designspicy.com/learn-how-to-post-on-twitter-using-php-and-oauth/
Проблема заключается в том, чтобы привязать значение, требуемое для кодирования:
пример
$status = $connection->post('https://api.twitter.com/1.1/statuses/update.json', array('status' => rawurlencode($message)));
Если вы проверите библиотеку, рекомендуется https://github.com/J7mbo/twitter-api-php
То, как они кодируют параметры