как опубликовать твит с помощью api twitter 1.1 и twitteroauth


Я использую приведенный ниже код для извлечения своих твитов и эхо-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));
?>
Author: Susheel Singh, 2013-06-12

4 answers

Я использовал twitteroauth.php чтобы самому публиковать твиты, когда новый API сломал его. Вы правильно используете $connection->post, но, похоже, эта функция больше не работает. Самым простым решением, которое я нашел, было поменять местами twitteroauth.php с помощью файла twitter-api-php J7mbo для нового API 1.1:

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 вам не нужно будет указывать свое имя пользователя/пароль. Маркер аутентификации будет обрабатывать все.

 14
Author: ideonexus, 2017-05-23 12:34:27

Просто используйте пример:

$connection->post('statuses/update', array('status' =>$message));
 5
Author: Noelchan, 2013-09-05 10:58:39

Попробуйте, вам не нужно будет вводить имя пользователя/пароль, который вы можете опубликовать с помощью ключа API, прочитайте учебник здесь.

Http://designspicy.com/learn-how-to-post-on-twitter-using-php-and-oauth/

 1
Author: Savan Paun, 2014-10-15 07:53:09

Проблема заключается в том, чтобы указать значение, которое должно быть указано:

Пример

$status = $connection->post('https://api.twitter.com/1.1/statuses/update.json', array('status' => rawurlencode($message)));

Если вы зарегистрируетесь в рекомендованной библиотеке https://github.com/J7mbo/twitter-api-php

Что способ, которым они кодируют параметры

 -2
Author: Luis Alvarez, 2016-09-23 21:30:06