【发布时间】:2011-08-05 20:39:30
【问题描述】:
为什么这段代码不起作用?我需要它来获取搜索标签狗的最新推文,然后提交状态更新并回复发送带有搜索标签狗的推文的用户。我正在使用亚伯拉罕的 twitteroauth,在这里找到:https://github.com/abraham/twitteroauth/downloads
<?php
require_once('twitteroauth.php');
define('CONSUMER_KEY', 'CONSUMERKEYHERE');
define('CONSUMER_SECRET', 'SECRET HERE');
define('ACCESS_TOKEN', 'TOKENHERE');
define('ACCESS_TOKEN_SECRET', 'TOKENSECRETHERE');
$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$twitter->host = "http://search.twitter.com/";
$search = $twitter->get('search', array('q' => 'dog', 'rpp' => 5));
$twitter->host = "https://api.twitter.com/1/";
foreach($search->results as $tweet) {
$status = '@$tweet->from_user Here my reply would go';
$twitter->post('statuses/update', array('status' => $status));
}
?>
我已经输入了我的消费者密钥、秘密和令牌,但在这里删除了它们。
谢谢!
【问题讨论】:
-
很抱歉在这里没有半点用处,因为我有一段时间没有使用 TwitterOAuth,但是 IIRC 如果您打印出
$twitter变量,它应该有一个字段告诉您收到的最后一个错误来自 twitter.com -
这给了我错误:类 TwitterOAuth 的对象无法转换为字符串
-
它给了我错误并显示连接超时api.twitter.com/1 This: object(TwitterOAuth)#1 (13) { ["http_code"]=> NULL ["url"]=> NULL [ "host"]=> string(26) "api.twitter.com/1" ["timeout"]=> int(30) ["connecttimeout"]=> int(30) ["ssl_verifypeer"]=> bool(false) ["格式"]=> string(4) "json" ["decode_json"]=> bool(true) ["http_info"]=> NULL ["useragent"]=> string(25) "TwitterOAuth v0.2.0-beta2" ["sha1_method"]=> object(OAuthSignatureMethod_HMAC_SHA1)#2 (0) { } ["consumer"]=> object(OAuthConsumer)#3 (3) { ["key"]=> string(22)
-
然后显示所有消费者密钥等
-
设置
$response = $twitter->post(...);然后var_dump($response);这将打印从 Twitter 返回的任何错误。如果您收到连接超时检查,您实际上可以连接到 api.twitter.com 并且没有防火墙阻止连接。
标签: php twitter oauth status reply