2013-06-12 10 views
6

Używam poniższego kodu, aby odzyskać moje tweety i echo json. To działa dobrze.jak opublikować tweet za pomocą Twittera 1.1 api i 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); 
?> 

Teraz chcę wysłać tweet za pomocą podobnego kodu, ale nie działa. Nie jestem pewien, czy składnia wysyłania jest poprawna. więc proszę, pomóż mi.

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

Odpowiedz

14

Użyłem twitteroauth.php do wysyłania tweetów samemu, gdy nowy interfejs API go zepsuł. Używasz prawidłowo $connection->post, ale wygląda na to, że funkcja już nie działa. Najprostszym rozwiązaniem znalazłem zamienić się z twitteroauth.php z pliku twitter-api-php J7mbo dla nowego API 1.1:

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

Oto jego instrukcje krok po kroku dotyczące korzystania z niej. Myślę, że będziesz mile zaskoczony, aby znaleźć można zostawić większość kodu takie same, wystarczy przełączyć nazywa twitteroauth z jego funkcja nazywa się w odpowiednich miejscach:

Simplest PHP example for retrieving user_timeline with Twitter API version 1.1

On nie daje specyficznych przykładem zamieszczając ćwierkać, ale tutaj jest to, co co jest potrzebne do tej funkcji:

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

Dzięki nowemu API Twittera, nie trzeba będzie podać swój login/hasło. Token uwierzytelniania zajmie się wszystkim.

5

Wystarczy posłużyć się przykładem:

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

Czy otrzymamy identyfikator tweeta i czas jako odpowiedź? –

+0

Chcę przekazać kolejny parametr "url" z "stanem" jest to możliwe – RaviPatidar

-2

Problem jest o enconding wartość należy enconde:

Przykład

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

Jeśli zaznaczysz w bibliotece zalecane https://github.com/J7mbo/twitter-api-php

że sposób ich kodowania parametry