如何使用twitter 1.1 api和twitteroauth发布推文

时间:2013-06-12 11:54:49

标签: php twitter twitter-oauth

我使用下面的代码来检索我的推文和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));
?>

4 个答案:

答案 0 :(得分:14)

当新的API破坏时,我正在使用twitteroauth.php自己发布推文。您正在使用$connection->post,但似乎功能不再起作用。我找到的最简单的解决方案是将twitteroauth.php与J7mbo的twitter-api-php文件换成新的1.1 API:

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

以下是他使用它的逐步说明。我想你会惊喜地发现你可以让大部分代码保持不变,只需在适当的地方用他的函数调用切换twitteroauth调用:

Simplest PHP example for retrieving user_timeline with Twitter API version 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();

使用新的Twitter API,您无需提供用户名/密码。身份验证令牌将处理所有内容。

答案 1 :(得分:5)

只需使用示例:

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

答案 2 :(得分:1)

试试吧 你不需要用户名/密码,你可以通过API密钥发布,阅读这里的教程。

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

答案 3 :(得分:-2)

问题在于考虑需要加入的价值:

实施例

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

如果您在图书馆中检查推荐https://github.com/J7mbo/twitter-api-php

他们编码params的方式