2013-06-12 12 views
6

Io uso il codice qui sotto per recuperare i miei tweets ed echo json. Funziona benecome postare tweet usando Twitter 1.1 api e twitteroauth

<?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); 
?> 

Ora voglio inviare un tweet utilizzando il codice simile ma non funziona. Non sono sicuro che la sintassi di invio sia corretta. quindi per favore qualcuno mi aiuti

<?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)); 
?> 

risposta

14

Stavo usando twitteroauth.php per pubblicare tweet me stesso quando la nuova API lo ha rotto. Stai utilizzando il $connection->post correttamente, ma sembra che la funzione non funzioni più. La soluzione più semplice che ho trovato è stato quello di scambiare il twitteroauth.php con il file twitter-api-php di J7mbo per il nuovo 1.1 API:

https://github.com/J7mbo/twitter-api-php

Ecco le sue istruzioni passo-passo per il suo utilizzo. Credo che sarete piacevolmente sorpresi di scoprire che si può lasciare la maggior parte del codice stesso, basta accendere il twitteroauth chiama con la sua funzione di chiamate nei luoghi appropriati:

Simplest PHP example for retrieving user_timeline with Twitter API version 1.1

Egli non fornisce la specifica esempio di pubblicazione di un tweet, ma ecco quello che ciò che è necessario per tale funzione:

$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(); 

Con la nuova API di Twitter, non sarà necessario fornire il nome utente/password. Il token di autenticazione gestirà tutto.

5

Basta usare l'esempio:

$connection->post('statuses/update', array('status' =>$message)); 
+0

Riceviamo tweet id e tempo in risposta? –

+0

Voglio passare un altro parametro 'url' con 'status' è possibile – RaviPatidar

-2

La questione è di circa il circuito di codifica il valore devono essere enconde:

Esempio

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

Se si controlla nella biblioteca raccomandati https://github.com/J7mbo/twitter-api-php

che il loro modo di codificare i parametri

Problemi correlati